Ubuntu系统的k8s常见的错误和解决的问题

K8s配置的时候出现的常见问题

Q1: master节点kubectl get nodes 出现的错误

在这里插入图片描述
或者
在这里插入图片描述

解决方法:


cat <<EOF >> /root/.bashrc
export KUBECONFIG=/etc/kubernetes/admin.conf
EOF

source /root/.bashrc

重新执行 kubectl get nodes
在这里插入图片描述

记得需要查看一下自己的hosts文件
查看自己的 ip, 使用 ifconfig 进行替换相关的地址和自己的主机名
在这里插入图片描述

Q2 master节点拉取镜像失败

修改镜像地址为阿里的,注意每个安装有 kubelet 的节点都需要修改(master节点和worker节点都需要)

# 生成 config.toml 文件,我在解决第3个问题的时候删除了
containerd config default > /etc/containerd/config.toml

# 按照官网CRI部分修改如下两个配置
vim /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri"]
   # sandbox_image = "registry.k8s.io/pause:3.6"
   sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

# 然后:wq保存一下

# 记得需要重启一下
systemctl restart containerd

# 修改crictl.yaml的CRI
cat <<EOF | sudo tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
EOF

需要修改的地方截图如下:
在这里插入图片描述
在这里插入图片描述

Q3 master节点 kubeadm reset 错误

在这里插入图片描述
解决办法

# 删除/etc/cni/net.d目录
rm /etc/cni/net.d
# 重置ipvsadm表
ipvsadm --clear

# 检查$HOME/.kube/config文件的内容

Q4 master节点 kubectl init 拉去镜像失败

在这里插入图片描述

解决办法:

# 指定阿里云镜像去拉去 --kubernetes-version=版本号
kubeadm init --kubernetes-version=v1.28.2 ​--image-repository=registry.aliyuncs.com/google_containers​

Q5 master节点没有证书密钥

在这里插入图片描述

解决办法:
Ubuntu安装golang-cfssl

sudo apt-get update
sudo apt-get install -y golang-cfssl

# 如果没有go环境需要执行下面命令先安装 golang
sudo apt-get install -y golang

创建一共ca-config文件:vim ca-config.json

{
  "signing": {
    "default": {
      "expiry": "8760h"
    },
    "profiles": {
      "kubernetes": {
        "usages": [
          "signing",
          "key encipherment",
          "server auth",
          "client auth"
        ],
        "expiry": "8760h"
      }
    }
  }
}

创建CA证书签名请求文件ca-csr.json

{
  "CN": "Kubernetes",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "Beijing",
      "O": "k8s",
      "OU": "System"
    }
  ]
}

生成证书密钥

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

创建一个名为admin-csr.json的文件

{
  "CN": "admin",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "Beijing",
      "O": "system:masters",
      "OU": "Kubernetes The Hard Way"
    }
  ]
}

然后,使用cfssl生成客户端证书和私钥

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin

最后拷贝文件到 /etc/kubernetes/pki 目录中

sudo cp admin.pem /etc/kubernetes/pki/admin.crt
sudo cp admin-key.pem /etc/kubernetes/pki/admin.key

最后执行kubectl get nodes 就可以正常查看自己的k8s集群了

Q6 kubeadm init 创建失败的问题

在这里插入图片描述

解决办法:

# 创建一共config文件
vim config.yaml

export KUBECONFIG=config.yaml

kubeadm init --kubernetes-version=v1.28.2 --image-repository=registry.aliyuncs.com/google_containers

config.yaml文件

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /etc/kubernetes/pki/ca.crt
    server: https://<master-ip>:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate: /etc/kubernetes/pki/admin.crt
    client-key: /etc/kubernetes/pki/admin.key

Q7 master没有ipvsadm

在这里插入图片描述
解决办法:

# 安装
apt install -y ipset ipvsadm

# 随后执行
 cat > /etc/modules-load.d/kubernetes.conf << EOF
# /etc/modules-load.d/kubernetes.conf
# Linux 网桥支持
br_netfilter
# IPVS 加载均衡器
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
# IPv4 连接跟踪
nf_conntrack_ipv4
# IP 表规则
ip_tables
EOF

添加权限

chmod a+x /etc/modules-load.d/kubernetes.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值