minikube部署Go应用

本篇文章基于VM Centos7 环境部署Go应用

前置准备工作

1.安装 minikube、kubectl

2.配置docker镜像源,配置内部仓库方便pod启动。

安装minikube

bash 复制代码
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
// 执行测试
minikube version

安装kubectl

bash 复制代码
curl -LO https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
// 执行测试
kubectl version --client

Docker相关配置

配置docker镜像源

配置docker镜像源提高docker拉取镜像速度

bash 复制代码
vi /etc/docker/daemon.json
bash 复制代码
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.imgdb.de",
        "https://docker-0.unsee.tech",
        "https://docker.hlmirror.com"
    ]
}
配置私有仓库

避免本地已有镜像但是还是从远程拉取

bash 复制代码
docker pull registry
docker images registry
docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry

修改私有镜像tag 以指定上传的仓库

bash 复制代码
docker tag go-web:latest localhost:5000/go-web:latest
docker push localhost:5000/go-web:latest

上传成功后可以查看推到仓库的镜像

bash 复制代码
curl localhost:5000/v2/_catalog

将私有仓库配置到docker配置文件中

bash 复制代码
{"insecure-registries":["私有仓库地址:5000"]}

配置完重启docker

bash 复制代码
systemctl restart docker

启动minikube

启动这一步问题很多,注意携带的参数

bash 复制代码
minikube start --driver=docker --insecure-registry="私有仓库地址:5000" --force
// --image-mirror-country='cn' 不加这个参数,无法从私有仓库拉取镜像

部署项目

好的现在minikube已经启动,现在我们要基于镜像部署一个项目

bash 复制代码
kubectl create deployment go-web --image=私有仓库地址:5000/go-web:latest
bash 复制代码
kubectl get pods //查看启动的pod状态

如果READY是0,就要去排查没启动的原因

  1. Failed to pull image "xxxx:5000/go-web:latest": Error response from daemon: Get "https://xxxx:5000/v2/": http: server gave HTTP response to HTTPS client。判断是否是更改了docker配置文件没有重启docker导致的。

2.connect refuse 这种一般是 镜像的tag没打对,按照 私有仓库ip:端口/镜像名:版本 格式打

启动成功后,把容器内的项目端口暴露出来,让宿主机可以访问

bash 复制代码
kubectl expose deployment go-web --type=NodePort --port=项目端口

执行minikube service启动项目

虚拟机内通过curl命令访问该url,就能正确访问到项目了

宿主机访问的话,通过nginx反向代理到该url,也能实现外部访问

相关推荐
分布式存储与RustFS22 分钟前
K8s 集群备份落到自建对象存储:Velero 接 RustFS 配置指南
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
无言听风雨丶9 小时前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao10 小时前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉11 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
知已难寻12 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
相思难忘成疾14 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo14 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
n1121215 小时前
Ollama 接 Open WebUI 中文界面:我踩的 4 个坑
云原生·eureka·ollama·本地大模型·open webui·私有部署·中文界面
阿里云云原生15 小时前
用户说 App“下不了单”:用 Session Replay 看清流程卡在哪一步
云原生
weirong15 小时前
给 K8s 加一个自动值班员:分级故障自愈引擎
kubernetes