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