本篇文章基于VM Centos7 环境部署Go应用
前置准备工作
1.安装 minikube、kubectl
2.配置docker镜像源,配置内部仓库方便pod启动。
安装minikube
- 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
- 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拉取镜像速度- vi /etc/docker/daemon.json
复制代码- {
- "registry-mirrors": [
- "https://docker.m.daocloud.io",
- "https://docker.imgdb.de",
- "https://docker-0.unsee.tech",
- "https://docker.hlmirror.com"
- ]
- }
复制代码 配置私有仓库
避免本地已有镜像但是还是从远程拉取- docker pull registry
- docker images registry
- docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry
复制代码 修改私有镜像tag 以指定上传的仓库- docker tag go-web:latest localhost:5000/go-web:latest
- docker push localhost:5000/go-web:latest
复制代码 上传成功后可以查看推到仓库的镜像- curl localhost:5000/v2/_catalog
复制代码 将私有仓库配置到docker配置文件中- {"insecure-registries":["私有仓库地址:5000"]}
复制代码 配置完重启docker启动minikube
启动这一步问题很多,注意携带的参数- minikube start --driver=docker --insecure-registry="私有仓库地址:5000" --force
- // --image-mirror-country='cn' 不加这个参数,无法从私有仓库拉取镜像
复制代码 部署项目
好的现在minikube已经启动,现在我们要基于镜像部署一个项目- kubectl create deployment go-web --image=私有仓库地址:5000/go-web:latest
- 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:端口/镜像名:版本 格式打
启动成功后,把容器内的项目端口暴露出来,让宿主机可以访问- kubectl expose deployment go-web --type=NodePort --port=项目端口
复制代码 执行minikube service启动项目
虚拟机内通过curl命令访问该url,就能正确访问到项目了
宿主机访问的话,通过nginx反向代理到该url,也能实现外部访问
到此这篇关于minikube部署Go应用的文章就介绍到这了,更多相关minikube部署Go内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:互联网
免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作! |