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

培训学校网站系统南京律师网站建设

培训学校网站系统,南京律师网站建设,怎么用手机开发app,平台网站建设协议书文章目录 环境说明目标步骤与问题解决1. 构建 Go 应用和 Docker 镜像问题 1:Go 依赖下载卡住问题 2:Docker 镜像拉取失败 2. 设置 Minikube 集群安装 Minikube问题 3:Minikube 启动失败问题 4:Minikube 镜像拉取失败 3. 部署 Kube…

文章目录

    • 环境说明
    • 目标
    • 步骤与问题解决
      • 1. 构建 Go 应用和 Docker 镜像
        • 问题 1:Go 依赖下载卡住
        • 问题 2:Docker 镜像拉取失败
      • 2. 设置 Minikube 集群
        • 安装 Minikube
        • 问题 3:Minikube 启动失败
        • 问题 4:Minikube 镜像拉取失败
      • 3. 部署 Kubernetes 资源
        • 优化 YAML
        • 加载镜像并部署
        • 问题 5:kubectl 连接失败
      • 4. 暴露服务
    • 总结

最近,我尝试在 Ubuntu 22.04 上使用 Minikube 和 Docker 部署一个 Go 应用到 Kubernetes 集群。过程中遇到了一些问题,包括 Go 依赖下载卡住、Docker 镜像拉取失败( 403 Forbidden)以及 Minikube 启动时的权限错误( HOST_JUJU_LOCK_PERMISSION)。这篇博客记录了我的部署过程、遇到的问题及解决方法,希望对其他开发者有所帮助。

环境说明

  • 操作系统:Ubuntu 22.04
  • 工具
    • Go 1.24.2
    • Docker(命令行版)
    • kubectl
    • Minikube v1.36.0
  • 项目:一个 Go 应用(webook),使用 gingorm 等依赖,计划构建为 Docker 镜像 flycash/webook-live:v0.0.1 并部署到 Kubernetes。
  • Kubernetes 配置k8s-webook-deployment.yaml,定义一个 3 副本的 Deployment,容器监听 8080 端口。

目标

将 Go 应用编译为 Docker 镜像,通过 Minikube 在本地 Kubernetes 集群中部署,并通过 Service 暴露应用。

步骤与问题解决

1. 构建 Go 应用和 Docker 镜像

项目位于 ~/go/src/3-2/webook,使用 make docker 构建镜像。Makefile 内容如下:

docker:go build -o webook .docker build -t flycash/webook-live:v0.0.1 .
问题 1:Go 依赖下载卡住

运行 make docker 时,Go 依赖(如 github.com/gin-contrib/sessionsgolang.org/x/text)下载卡住。原因可能是国内网络对 golang.orggithub.com 的访问受限。

解决方法

  • 配置 Go 模块代理:
    go env -w GOPROXY=https://goproxy.cn,direct
    go mod download
    
  • 如果仍卡住,尝试其他代理(如 https://goproxy.io)或临时禁用校验和验证:
    go env -w GOSUMDB=off
    go mod download
    go env -w GOSUMDB=sum.golang.org
    
  • 然后构建:
    go build -o webook .
    docker build -t flycash/webook-live:v0.0.1 .
    
问题 2:Docker 镜像拉取失败

docker build 时,遇到 403 Forbidden 错误,拉取 ubuntu:20.04 失败。原因是配置的镜像源(lz2nib3q.mirror.aliyuncs.com)不可用。

解决方法

  • 检查 Docker 镜像源配置:
    cat /etc/docker/daemon.json
    
  • 更新为可靠镜像源(如阿里云或中科大):
    {"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"]
    }
    
  • 重启 Docker:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  • 验证镜像拉取:
    docker pull ubuntu:20.04
    

2. 设置 Minikube 集群

由于只安装了 kubectldocker,需要一个本地 Kubernetes 集群。我选择了 Minikube,因为它易于安装且与 Docker 集成良好。

安装 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
问题 3:Minikube 启动失败

尝试以 root 用户运行 minikube start --driver=docker,遇到以下错误:

HOST_JUJU_LOCK_PERMISSION: Failed to start host: boot lock: unable to open /tmp/juju-mk...: permission denied

原因:

  • Ubuntu 22.04 的 fs.protected_regular=2 限制了 /tmp 文件访问。
  • Minikube 不建议以 root 身份使用 docker 驱动。

解决方法

  • 将用户添加到 Docker 用户组,避免 sudo
    sudo usermod -aG docker lizhi
    newgrp docker
    
  • 解决 /tmp 权限问题:
    sudo sysctl fs.protected_regular=0
    
  • 以普通用户启动 Minikube:
    minikube start --driver=docker
    
问题 4:Minikube 镜像拉取失败

Minikube 默认拉取 gcr.io/k8s-minikube/kicbase:v0.0.46,但因网络限制失败。

解决方法

  • 从阿里云拉取镜像并重新标记:
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46 gcr.io/k8s-minikube/kicbase:v0.0.46
    
  • 启动 Minikube,指定镜像:
    minikube start --driver=docker --base-image=registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46
    

3. 部署 Kubernetes 资源

k8s-webook-deployment.yaml 内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: webook-live
spec:replicas: 3selector:matchLabels:app: webook-livetemplate:metadata:labels:app: webook-livespec:containers:- name: webookimage: flycash/webook-live:v0.0.1ports:- containerPort: 8080
优化 YAML

为确保使用本地镜像并提高稳定性,添加 imagePullPolicy 和资源限制:

apiVersion: apps/v1
kind: Deployment
metadata:name: webook-live
spec:replicas: 3selector:matchLabels:app: webook-livetemplate:metadata:labels:app: webook-livespec:containers:- name: webookimage: flycash/webook-live:v0.0.1imagePullPolicy: Neverports:- containerPort: 8080resources:requests:cpu: "200m"memory: "256Mi"limits:cpu: "500m"memory: "512Mi"
加载镜像并部署
  • 加载镜像到 Minikube:
    minikube image load flycash/webook-live:v0.0.1
    
  • 应用部署:
    kubectl apply -f k8s-webook-deployment.yaml
    
  • 检查 Pod 状态:
    kubectl get pods -l app=webook-live
    
问题 5:kubectl 连接失败

初次运行 kubectl apply 时,报错 connection refusedhttp://localhost:8080)。原因是未运行 Kubernetes 集群。

解决方法

  • Minikube 启动后,~/.kube/config 自动配置为正确的 API 服务器地址(https://<ip>:8443)。
  • 验证:
    kubectl cluster-info
    

4. 暴露服务

为访问应用,创建 Service

apiVersion: v1
kind: Service
metadata:name: webook-live-service
spec:selector:app: webook-liveports:- protocol: TCPport: 80targetPort: 8080type: ClusterIP
  • 保存为 k8s-webook-service.yaml,应用:
    kubectl apply -f k8s-webook-service.yaml
    
  • 访问服务:
    minikube service webook-live-service --url
    

总结

通过以下步骤,我成功在 Ubuntu 22.04 上部署了 Go 应用到 Minikube:

  1. 配置 Go 代理(goproxy.cn)解决依赖下载问题。
  2. 使用阿里云镜像源解决 Docker 和 Minikube 镜像拉取问题。
  3. 将用户添加到 Docker 用户组,解决 Minikube 权限问题。
  4. 优化 k8s-webook-deployment.yaml,加载本地镜像并部署。
  5. 创建 Service 暴露应用。

文章转载自:

http://NAwWqJBi.kkjhj.cn
http://rVKUH6I0.kkjhj.cn
http://zGCpqIpC.kkjhj.cn
http://exRsrAQQ.kkjhj.cn
http://8f3AvLWi.kkjhj.cn
http://alCMA9Sz.kkjhj.cn
http://JCjTnesS.kkjhj.cn
http://2KUccWS8.kkjhj.cn
http://JHPjBsq6.kkjhj.cn
http://Hg2ckfYx.kkjhj.cn
http://xRa4lFPJ.kkjhj.cn
http://QL11scLn.kkjhj.cn
http://y4epS3XB.kkjhj.cn
http://imSI1EHU.kkjhj.cn
http://ua3qfWLX.kkjhj.cn
http://QH29zeRu.kkjhj.cn
http://LmcewfMM.kkjhj.cn
http://DJ2I4hgP.kkjhj.cn
http://EFy1fNPv.kkjhj.cn
http://TbciWnin.kkjhj.cn
http://Ow6ZS9l0.kkjhj.cn
http://3MBVLHLb.kkjhj.cn
http://RvpYT0YU.kkjhj.cn
http://IcsZzDlH.kkjhj.cn
http://7L7O6qjD.kkjhj.cn
http://hSJa3tNN.kkjhj.cn
http://oXTNWagb.kkjhj.cn
http://dqj4JhXN.kkjhj.cn
http://kA4GmyzG.kkjhj.cn
http://5JURrMWH.kkjhj.cn
http://www.dtcms.com/wzjs/653902.html

相关文章:

  • 有口碑的佛山网站建设wordpress cx-udy
  • 北京企业网站报价用html5做京东网站代码
  • 网络专业的网站建设价格低做网站网站赚
  • 人社局网站建设建设一个网站的设备
  • 设计网站页面的工作叫啥关键词搜索工具app
  • 门业网站 模板国外包装设计网站
  • 汉中网站开发免费一卡二卡三
  • 做贸易把产品放到哪个网站好呢襄阳今天刚刚发生的新闻
  • 邯郸资讯seo公司如何优化
  • 网站被黑的表现大理建设投资有限公司网站
  • 域名注册以后怎样做网站免费站长工具
  • 襄阳企业网站建设使用unity做网站
  • 手机网站建设地址营销网店推广的软文
  • 怎么做一元抽奖网站设计师 个人网站
  • 嘉定网站建设电脑培训网站网页优化怎么做
  • 打开百度一下网页版宁波关键词优化排名工具
  • 宁波模板建站定制wordpress显示pdf
  • 北京欢迎你网站制作公司电商网站代码模板
  • 青岛网站建设 青岛博采网络绥化市新闻最新消息
  • 大型网站开发团队网络公司排行国内
  • 网站空间知识建设网站免费模板下载
  • 鼎维重庆网站建设专家低代码开发技术
  • 网站 微信开发工作技巧与工作方法
  • 佛山网站建设明细深圳高端网站定制建设
  • 怎样在阿里云做网站xp系统建设网站
  • 在百度上注册公司网站要多少钱wcm 可以做网站吗
  • 南京网站建设优化网站开发用什么开发
  • 佛山制作网站公司吗工商系统企业信用信息查询
  • 石家庄网站建设费用做哪个网站有效果
  • l临沂建设工程信息网站本地wordpress上传图片无法显示