51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

k8s 1.24 安装(k8s 安装)containerd

k8s 1.24 安装(k8s 安装)containerd

节点 ,k8s 241, 242,243

配置环境:

参考: https://www.baimeidashu.com/11590.html

一定把配置好初始环境,不然会出错的。

kubeadm组件初始化K8S集群

安装容器运行时

Kubernetes 1.24.0 开始 Docker 支持功能现已弃用,而是转向使用容器标准 containerd。其实 containerd 也是 Docker 捐献给社区,而且 Docker 本身底层也是依赖该模块

1安装 Docker 源

yum install -y yum-utils
 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2# 安装 containerd

yum install -y containerd.io

3导出 containerd 的配置

containerd config default > /etc/containerd/config.toml

4替换默认pause镜像地址

sed -i 's/k8s.gcr.io/registry.cn-beijing.aliyuncs.com\/abcdocker/' /etc/containerd/config.toml 
grep sandbox_image /etc/containerd/config.toml

5 .配置systemd作为容器的cgroup driver

sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/' /etc/containerd/config.toml
grep SystemdCgroup /etc/containerd/config.toml

6.配置containerd开机自启动
6.1启动containerd服务并配置开机自启动

systemctl enable --now containerd

6.2 查看containerd状态

systemctl status containerd

6.3 查看containerd的版本

ctr version


8.containerd的基础操作
具体的使用方法参考帮助信息"ctr -h",如上图所示。
containerd官方操作地址:
https://github.com/containerd/containerd/blob/main/docs/getting-started.md

安装 kubeadm

Kubernetes 官网给的 yum 源是 packages.cloud.google.com 的,如果有代理,可以使用官方的源,如果没有代理,可以使用阿里云的镜像源。

配置K8S软件源

cat  > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

安装 kubeadm

yum  -y install kubelet-1.24.1 kubeadm-1.24.1 kubectl-1.24.1

1.2 k8s241节点kubelet设置成开机启动

systemctl enable --now kubelet
systemctl status kubelet

检查后应该是失败,因为没有初始化

1.3 检查kubectl工具版本号,如图所示

kubectl version --client --output=yaml

初始化主节点

在主节点,也就是主机名为 master.cluster.k8s 的服务器上,完成以下工作:

导出 kubeadm 的默认配置

kubeadm config print init-defaults > kubeadm-config.yaml

修改配置文件 kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef # 修改为你自己私有的 token,不改也没关系,24小时之后会过期
  ttl: 24h0m0s # 控制 token 过期时间,可以不改
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 10.0.0.241 # 此处修改为主节点的 IP
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: node
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: 1.24.1 # 这里改为与当前 Kubernetes 相同的版本号
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16 # 使用 flannel 模型通信,这个 IP 的值需要固定为这个值
  serviceSubnet: 10.96.0.0/16 # 创建 Service 时的网段
scheduler: {}
---
# 指定使用 ipvs 网络通信
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
  SupportIPVSProxyMode: true
mode: ipvs

开始初始化主节点

kubeadm init --config=kubeadm-config.yaml --node-name=k8s241 --upload-certs | tee kubeadm-init.log

这一步是有问题的。

需要用这个命令来执行

kubeadm init --kubernetes-version=v1.24.1 --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.100.0.0/16 --service-cidr=10.200.0.0/16  --service-dns-domain=baimei.com

这个需要下载镜像 等待时间有点长
可以开另一个终端,检查有没有下载镜像

ctr ns ls   # 查看镜像的名称空间。

ctr -n k8s.io i ls -q   #查看k8s.io名称空间的镜像信息。


5.查看本地镜像和容器信息

ctr ns ls
查看镜像的名称空间。


ctr -n k8s.io i ls -q
查看k8s.io名称空间的镜像信息。


ctr -n k8s.io c ls
查看k8s.io名称空间的容器信息。

token创建

(1)声明一个永不过期的KEY

kubeadm token create --print-join-command --ttl 0

(2)master节点使用咱们新生成的token加入集群

kubeadm join 10.0.0.241:6443 --token 811132.8b7jxib7pencj71p \
	--discovery-token-ca-cert-hash sha256:c74091db05c9f7d56e50fa7c55155f2f8be64b07ee265039071df54615fdcde7  # 后边用到 

(3)如下图所示,kubeadm生成的token数据将存储在k8s集群

kubectl -n kube-system get secret 
kubectl -n kube-system get secret bootstrap-token-8kd0b0 -o yaml

将master证书上传到kubeadm的证书文件中

 (1)将控制面板证书文件上传到kubeadm证书
kubeadm init phase upload-certs --upload-certs 
​
    (2)如上图所示,会生成一个KEY,我们后期会使用到。
d1702d0ec2259cf9d769a9ff8e58d01338246f5042be0b9dcd835a1d3151563a  #下边会用到
​
​
温馨提示:
    在生成之前,建议使用"kubectl -n kube-system get secret kubeadm-certs -o wide"查看一下基本信息。

kubectl cluster-info

加入其他2个节点

yum install -y kubelet-1.24.1 kubeadm-1.24.1 kubectl-1.24.1 --disableexcludes=kubernetes

k8s242 243 都操作

kubeadm join master-lb:6443 --token 8kd0b0.n8s2jdgwimeks9io \
                            --discovery-token-ca-cert-hash \
                            sha256:c74091db05c9f7d56e50fa7c55155f2f8be64b07ee265039071df54615fdcde7 \
                            --control-plane \
                            --certificate-key \
                            9a2edd594ddfac3f074a717e366b9d24961c5ec416a6a4938d15854b9c3d46b8
赞(8)
未经允许不得转载:工具盒子 » k8s 1.24 安装(k8s 安装)containerd