minikube部署Go应用小结

 更新时间:2025年03月21日 08:51:07   作者:唐可盐  
本文详细介绍了在VMCentos7环境下使用Minikube和Kubernetes部署Go应用的步骤,包括安装Minikube和Kubectl、配置Docker镜像源和私有仓库、部署项目以及解决启动过程中的常见问题,感兴趣的朋友一起看看吧

本篇文章基于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,也能实现外部访问

到此这篇关于minikube部署Go应用的文章就介绍到这了,更多相关minikube部署Go内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang waitgroup辅助并发控制使用场景和方法解析

    golang waitgroup辅助并发控制使用场景和方法解析

    Golang 提供了简洁的 go 关键字来让开发者更容易的进行并发编程,同时也提供了 WaitGroup 对象来辅助并发控制,今天我们就来分析下 WaitGroup 的使用方法,顺便瞧一瞧它的底层源码
    2023-09-09
  • go并发数据一致性事务的保障面试应答

    go并发数据一致性事务的保障面试应答

    这篇文章主要为大家介绍了go并发数据一致性事务的保障面试应答,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Golang 中的直接依赖和间接依赖管理详解

    Golang 中的直接依赖和间接依赖管理详解

    在 Golang 中,依赖管理是非常重要的,直接依赖是指项目代码中明确引用的其他包的依赖,而间接依赖是指直接依赖所引用的其他包的依赖,这篇文章主要介绍了Golang 中的直接依赖和间接依赖管理,需要的朋友可以参考下
    2023-11-11
  • 详解Go开发Struct转换成map两种方式比较

    详解Go开发Struct转换成map两种方式比较

    本篇文章主要介绍了详解Go开发Struct转换成map两种方式比较,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Golang学习笔记之安装Go1.15版本(win/linux/macos/docker安装)

    Golang学习笔记之安装Go1.15版本(win/linux/macos/docker安装)

    这篇文章主要介绍了Golang学习笔记之安装Go1.15版本(win/linux/macos/docker安装),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 深入了解Golang包的获取方法

    深入了解Golang包的获取方法

    Go语言有一个获取远程包的工具就是go get,本文将详细为大家介绍一下Go语言包的获取的方法,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-07-07
  • 详解go-admin在线开发平台学习(安装、配置、启动)

    详解go-admin在线开发平台学习(安装、配置、启动)

    这篇文章主要介绍了go-admin在线开发平台学习(安装、配置、启动),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • go打包aar及flutter调用aar流程详解

    go打包aar及flutter调用aar流程详解

    这篇文章主要为大家介绍了go打包aar及flutter调用aar流程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Gin框架中参数校验优化详解

    Gin框架中参数校验优化详解

    这篇文章主要为大家详细介绍了Gin框架中参数校验优化的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-08-08
  • 详解golang中接口使用的最佳时机

    详解golang中接口使用的最佳时机

    接口在系统设计中,以及代码重构优化中,是一个不可或缺的工具,能够帮助我们写出可扩展,可维护性更强的程序,本文主要为大家介绍一下golang中接口使用的最佳时机,有兴趣的可以了解下
    2023-09-09

最新评论