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

k8s:离线部署存在的相关问题

 摘要:本文解决三个常见Kubernetes环境问题:1) 编译docker-compose时缺少Go环境,通过安装Go1.24.4并配置环境变量解决;2) node节点kubectl连接APIServer失败,需从master节点拷贝admin.conf配置文件;3) node节点从Harbor拉取镜像时证书验证失败,需配置CA证书。每个问题均包含详细错误现象、原因分析及操作步骤说明,涉及环境变量配置、kubeconfig文件结构解析等关键知识点。

问题1:没有go语言问题

如何源代码编译docker-compose,详见《编译docker-compose linux x86-64》

现象

手动编译docker-compose报如下错误:

GO111MODULE=on go build  -trimpath -tags "e2e" -ldflags "-w -X github.com/docker/compose/v2/internal.Version=2.37.2" -o "./bin/build/docker-compose" ./cmd

/bin/sh: go: command not found

make: *** [Makefile:61: build] Error 127

解决方案

步骤 1:拷贝到目标机器

scp go1.24.4.linux-amd64.tar.gz root@172.23.123.118:/app/KubeSphere/docker

步骤 2:上传并解压到离线机器

sudo tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gz

步骤 3:设置环境变量

编辑你的 shell 配置文件(如 ~/.bashrc 或 ~/.zshrc):

#vi ~/.bashrc

export PATH=/usr/local/go/bin:$PATH

export GOPROXY=https://goproxy.cn,direct

 source ~/.bashrc

步骤 4:查看版本

#go version

问题2:kubectl 无法连接到 Kubernetes API Server 的典型错误

现象

node节点执行

kubectl get nodes

报如下错误:

E0720 12:10:35.833702   28059 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused

The connection to the server localhost:8080 was refused - did you specify the right host or port?

原因

这是 kubectl 无法连接到 Kubernetes API Server 的典型错误。

具体说明:

kubectl 默认尝试连接 localhost:8080,但这个地址上没有运行 API Server。

这通常是因为:

Kubernetes 集群 没有在本机运行,本机是在一个 worker 节点

你没有配置正确的 kubectl 配置文件(~/.kube/config)

解决方案:

node节点主机执行

 mkdir -p ~/.kube

从mastger主机拷贝admin.conf文件到node解读

 scp /etc/kubernetes/admin.conf  root@172.23.123.118:~/.kube/config

节点主机再执行

kubectl get nodes

 

config是 Kubernetes 用来认证用户、连接集群、操作 API 的核心配置文件。

文件结构概览

这个 kubeconfig 文件主要包含以下几个部分:

部分

说明

clusters

定义了连接的 Kubernetes 集群信息

users

定义了用户的认证信息(如证书、密钥)

contexts

将用户和集群绑定,定义当前上下文

current-context

当前使用的上下文

 

​​​​​​​问题3:node节点从Harbor拉取image报错

现象:

在node节点执行

crictl pull 172.23.123.117:8443/kubesphereio/pause:3.9报如下错误:

FATA[0000] pulling image: failed to pull and unpack image "172.23.123.117:8443/kubesphereio/pause:3.9": failed to resolve reference "172.23.123.117:8443/kubesphereio/pause:3.9": failed to do request: Head "https://172.23.123.117:8443/v2/kubesphereio/pause/manifests/3.9": tls: failed to verify certificate: x509: certificate signed by unknown authority: Process exited with status 1

解决方案:

详见《CA证书配置》

http://www.dtcms.com/a/289561.html

相关文章:

  • 近期工作感想:职业规划篇
  • 【单片机外部中断实验修改动态数码管0-99】2022-5-22
  • Linux文件系统三要素:块划分、分区管理与inode结构解析
  • 本地部署开源离线内容浏览器 Kiwix 并实现外部访问( Windows 版本)
  • 【Java新特性】Java 21 新特性全解析
  • CSS面试题及详细答案140道之(121-140)
  • 快速理解LLM的temperature和top_p参数
  • 设备健康管理实施案例:从技术架构到落地效果的全栈解析
  • MCP实战案例|Trae2.0 一键创建旅行助手并一键部署EdgeOne
  • ARFoundation系列讲解 - 101 VisionPro 真机调试
  • Vue中组件的生命周期
  • 建筑墙壁损伤缺陷分割数据集labelme格式7820张20类别
  • Django ORM系统
  • [学习] Hilbert变换:从数学原理到物理意义的深度解析与仿真实验(完整实验代码)
  • 平安车管家|中国平安车管家入职测评16PF瑞文IQ测评答题攻略及真题题库
  • 嵌入式系统内核镜像相关(十七)
  • AI 的广泛应用是否会削弱人的思考能力和创造力?
  • GaussDB select into和insert into的用法
  • 字符串处理
  • MySQL学习----Explain
  • 关于堆的判断
  • 【工具变量】A股上市公司企业合作文化数据集(2007-2023年)
  • 测试中的bug
  • adb常用命令
  • 5.1.4习题精讲
  • RocketMQ核心编程模型
  • Python基础-列表
  • 氛围编码(Vice Coding)的工具选择方式
  • 攻防世界-web习题-unseping-flag获取详解、总结
  • snmp攻击