当前位置: 首页 > 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.lryc.cn/news/594058.html

相关文章:

  • day 30 打卡
  • Redis 详解:从入门到进阶
  • MySQL 配置性能优化实操指南:分版本5.7和8.0适配方案
  • 【Anaconda】Conda 虚拟环境打包迁移教程
  • Redis通用常见命令(含面试题)
  • 28.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(二)
  • 零基础学习性能测试第二章-linux/jvm/mysql等数据收集环境搭建
  • Feign远程调用
  • 在Ubuntu22系统上离线部署ai-infra-guard教程【亲测成功】
  • 【成品设计】基于STM32的宠物检测系统
  • ubuntu-linux-pycharm-社区版安装与django配置
  • 数据结构自学Days10 -- 二叉树的常用实现
  • 基于Chinese-LLaMA-Alpaca-3的多模态中医舌诊辅助诊断系统设计与实现
  • 【Linux】2. Linux下的C/C++开发环境
  • 使用“桥接模式“,实现跨平台绘图或多类型消息发送机制
  • 元宇宙经济的四个特征
  • Python,GPU编程新范式:CuPy与JAX在大规模科学计算中的对比
  • 数学专业转行做大数据容易吗?需要补什么?
  • 【前端】懒加载(组件/路由/图片等)+预加载 汇总
  • 笔试——Day13
  • 群组功能实现指南:从数据库设计到前后端交互,上班第二周
  • SmartyPants
  • git fork的项目远端标准协作流程 仓库设置[设置成upstream]
  • [硬件电路-55]:绝缘栅双极型晶体管(IGBT)的原理与应用
  • Elasticsearch 简化指南:GCP Google Compute Engine
  • windows + phpstorm 2024 + phpstudy 8 + php7.3 + thinkphp6 配置xdebug调试
  • Qt 应用程序入口代码分析
  • QT无边框窗口
  • 学习C++、QT---30(QT库中如何自定义控件(自定义按钮)讲解)
  • 在vue中遇到Uncaught TypeError: Assignment to constant variable(常亮无法修改)