当前位置: 首页 > news >正文

minikube部署Go应用

本篇文章基于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

systemctl restart 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,也能实现外部访问

相关文章:

  • 蓝桥杯备考-----》差分数组+二分答案 借教室
  • deepseek连续对话与API调用机制
  • axios防止重复请求
  • DJ串烧集 2.4.5 | 海量大型DJ串烧歌曲,无广告,无需登录,高清在线播放
  • Apache Shiro 使用教程
  • Redis,从数据结构到集群的知识总结
  • OpenGL ES 入门指南:从基础到实战
  • 【JavaEE】Spring Boot 日志
  • 基于VMware的虚拟机集群搭建
  • 机器学习之浅层神经网络
  • Matlab 舰载机自动着舰控制系统研究
  • 咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包
  • Markdown 模板变量的使用
  • 科研入门--SCI及分区
  • Linux:UDP和TCP报头管理
  • C++ STL map
  • 模板字面量标签函数
  • pyqt 上传文件或者文件夹打包压缩文件并添加密码并将密码和目标文件信息保存在json文件
  • ccf3401矩阵重塑(其一)
  • 使用Ajax技术进行动态网页的爬虫(pycharm)
  • 特朗普:将于19日分别与普京和泽连斯基通话
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 雅典卫城上空现“巨鞋”形状无人机群,希腊下令彻查
  • 广西:坚决拥护党中央对蓝天立进行审查调查的决定
  • 金融月评|尽早增强政策力度、调整施策点
  • 恒生银行回应裁员传闻:受影响的员工数目占银行核心业务员工总数约1%