Kubernetes 1.24.3 + Containerd 1.5.9 + Ubuntu 22 环境安装

20220729版本k8s配置
系统版本:Ubuntu 22.07
Kubernetes版本:v1.24.3
Containerd版本:1.5.9

1. 系统基础配置(Master节点,Node节点都需要操作)

1.1 关闭缓存

--临时关闭
$ sudo swapoff -a

--永久关闭,注销其中swap行保存重启
$ sudo vi /etc/fstab
  # swap ······

1.2 网络配置

$ sudo modprobe overlay
$ sudo modprobe br_netfilter
$ sudo sysctl net.bridge.bridge-nf-call-iptables=1
$ sudo sysctl net.ipv4.ip_forward=1

1.3 生效

$ sudo sysctl --system
2. Containerd安装配置(Master节点,Node节点都需要操作)

2.1 安装启动

--安装依赖工具
$ sudo apt-get install -y apt-transport-https ca-certificates curl

--安装containerd
$ sudo apt-get -y install containerd
$ sudo systemctl enable containerd
$ sudo systemctl start containerd

2.2 输出配置(需手动创建空文件)

--输出默认配置文件
$ sudo mkdir /etc/containerd
$ sudo touch /etc/containerd/config.toml
$ sudo containerd config default > /etc/containerd/config.toml

2.3 编辑配置文件

$ sudo vi /etc/containerd/config.toml

  1. 修改SystemdCgroup参数为true,默认为false
   [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
      SystemdCgroup = true

  2. 修改sandbox_image参数,其值一定要和 $ kubeadm config images list 命令输出的pause版本和tag保持一致,否则Node节点的Pod一直 CrashLoopBackOff 而且查询 kubectl logs 时也没有任何错误,此处我的版本为阿里云3.7
  sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"

2.4 生效

$ sudo systemctl restart containerd
3. K8s 安装(Master节点,Node节点都需要操作)

3.1 更换国内源

$ sudo vi /etc/apt/sources.list 
  --添加如下行阿里云国内源
  deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main

--提示KEY报错时,执行如下命令添加KEY
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add 

--更新
$ sudo apt-get update

3.2 安装

$ sudo apt-get install -y kubelet kubeadm kubectl

3.3 配置容器ENDPOINT并生效

$ crictl config runtime-endpoint unix:///run/containerd/containerd.sock
$ crictl config image-endpoint unix:///run/containerd/containerd.sock
$ sudo systemctl restart containerd
4. K8s 初始化集群安装(Master节点操作)

4.1 初始化集群,--pod-network-cidr为后续flannel网络组件网络配置,--image-repository指定使用国内源

$ sudo kubeadm init \
              --pod-network-cidr=10.244.0.0/16 \
              --image-repository registry.aliyuncs.com/google_containers 

4.2 等待上述命令完成,看到如下输出即为成功,如果输出异常,查找原因处理后执行$ sudo kubeadm reset 重置后,重复上述命令初始化即可

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:


kubeadm join 10.0.XXX.XXX:6443 --token ejhtey.ju5x1ipnpym2vcoj \
        --discovery-token-ca-cert-hash sha256:16b86d5b800599ae4acb570106ebceb265b8XXXXXXXXXXXXXXXXXXXXXXXX

4.3 安装flannel网络组件,如果执行失败,手动下载后,上传到目标服务器,改为本地文件执行即可。$ kubectl apply -f kube-flannel.yml

$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
5. K8s Node节点加入(Node节点操作)

5.1 执行4.2输出JOIN命令,等待提示完成即可

$ sudo kubeadm join 10.0.XXX.XXX:6443 --token ejhtey.ju5x1ipnpym2vcoj \
        --discovery-token-ca-cert-hash sha256:16b86d5b800599ae4acb570106ebceb265b8XXXXXXXXXXXXXXXXXXXXXXXX
6. 常用命令

$ sudo crictl images #查询 images 列表
$ kubectl get pod --all-namespaces -o wide #查询所有POD
$ kubectl get nodes #查询node节点状态
$ kubectl describe pod -n kube-system kube-proxy-jzgwn #查询指定POD描述信息
$ kubectl logs -n kube-system kube-proxy-p2n4h #查询指定POD详细日志
$ export KUBECONFIG=/etc/kubernetes/admin.conf #如果是ROOT用户,加载配置,kubectl命令执行提示环境异常的时候执行
$ kubeadm token create --print-join-command --ttl=0 #重新生成集群加入Token
$ ctr -n k8s.io i tag registry.aliyuncs.com/google_containers/pause:3.7 k8s.gcr.io/pause:3.7 #containerd标签命名,类似 docker tag 效果

你可能感兴趣的:(Kubernetes 1.24.3 + Containerd 1.5.9 + Ubuntu 22 环境安装)