1.下载用于Kubernetes软件包仓库的公共签名秘钥
#如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它。
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
添加Kubernetes apt 仓库
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
查看看具体配置
跟新apt 包索引
sudo apt-get update
2.k8s集群软件安装
安装软件之前,可以先查看软件列表
apt-cache policy kubeadm
也可以查看软件列表及其依赖关系
apt-cache showpkg kubeadm
# 查看软件列表
apt-cache madison kubeadm
默认安装
sudo apt-get install -y kubelet kubeadm kubectl
# 也可以安装指定版本 sudo apt-get install -y kubelet=1.29.0-1.1 kubeadm=1.29.0-1.1 kubectl=1.29.0-1.1
# 锁定版本,防止后期自动更新
sudo apt-mark hold kubelet kubeadm kubectl
# 解锁版本,可以执行更新
sudo apt-mark unhold kubelet kubeadm kubectl
3.k8s集群初始化
3.1.集群配置文件
查看版本
kubeadm version
生成部署配置文件
kubeadm config print init-defaults > kubeadm-config.yaml
需要编辑kubeadm-config.yaml文件
vim kubeadm-config.yaml
需要将advertiseAddress: 1.2.3.4 由“1.2.3.4” 改成“192.168.113.131” 将name: node 由 "node" 改成 "k8s-master01" Netwoking 需要 增加 pod
文件内容最后追加
---kind: KubeletConfigurationapiVersion: kubelet.config.k8s.io/v1betalcgroupDriver: systemd
最终如下:
apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration bootstrapTokens:- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication localAPIEndpoint:advertiseAddress: 192.168.113.131bindPort: 6443 nodeRegistration:criSocket: unix:///var/run/containerd/containerd.sock imagePullPolicy: IfNotPresentname: k8s-master01taints: null --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration apiServer:timeoutForControlPlane: 4m0s certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controllerManager: {} dns: {} etcd:local:dataDir: /var/lib/etcd imageRepository: registry.k8s.io kubernetesVersion: 1.29.0 networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12 podSubnet: 10.244.0.0/16 scheduler: {} --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration cgroupDriver: systemd
查看镜像
sudo kubeadm config images list
# 拉取镜像
kubeadm config images pull
如果拉取失败则,可以使用
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
# 查看具体镜像
crictl images
3.2使用部署配置文件初始化K8S集群
# 初始化
kubeadm init --config kubeadm-config.yaml
结果报错了如下:
需要检查配置文件中的 apiVersion配置的信息是否正确
正常输出的内容如下: