k8s集群(containerd)安装——master篇
标签搜索

k8s集群(containerd)安装——master篇

mrui
2025-03-26 / 0 评论 / 53 阅读 / 正在检测是否收录...

master安装

环境配置

  1. 禁用selinux sed -i '/^SELINUX=/s//SELINUX=disabled/' /etc/selinux/config
  2. 禁用swap swapoff -a && sed -i '/swap/d' /etc/fstab
  3. 禁用防火墙 yum -y remove firewalld
  4. 修改hosts文件 echo "192.168.2.51 master" >> /etc/hosts
    不添加会有如下报错

    [root@master1 k8s]# kubeadm init --config=kubeadm.yml --dry-run
    [init] Using Kubernetes version: v1.28.0
    [preflight] Running pre-flight checks
       [WARNING Hostname]: hostname "master" could not be reached
       [WARNING Hostname]: hostname "master": lookup master on 114.114.114.114:53: no such host
       [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
    
  5. 设置网桥

    for i in overlay br_netfilter;do
     modprobe ${i}
     echo "${i}" >>/etc/modules-load.d/containerd.conf   done
      cat >/etc/sysctl.d/99-kubernetes-cri.conf<<EOF
       net.ipv4.ip_forward = 1
       net.bridge.bridge-nf-call-iptables = 1
       net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      sysctl --system

安装软件包

安装kubeadm、kubectl、kubelet、containerd

yum install -y kubeadm kubelet kubectl containerd
#安装代理软件包
yum install -y ipvsadm ipset
设置开机自启动
systemctl enable --now containerd
systemctl enable --now kubelet
#配置快捷键
source <(kubeadm completion bash|tee /etc/bash_completion.d/kubeadm)
source <(kubectl completion bash|tee /etc/bash_completion.d/kubectl)

修改containerd配置文件,安装crictl,详见文章 containerd安装与配置

下载镜像

#查看安装集群所需要的镜像信息
kubeadm  config images list
I0326 20:53:28.890691    6257 version.go:256] remote version is much newer: v1.32.3; falling back to: stable-1.28
registry.k8s.io/kube-apiserver:v1.28.15
registry.k8s.io/kube-controller-manager:v1.28.15
registry.k8s.io/kube-scheduler:v1.28.15
registry.k8s.io/kube-proxy:v1.28.15
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.15-0
registry.k8s.io/coredns/coredns:v1.10.1
#将镜像信息保存到临时文件中,方便下一步操作
kubeadm  config images list > a.txt
# 下载所需要的镜像
for i in ` awk -F'/' '{print "registry.aliyuncs.com/google_containers/"$2}' a.txt`
do
crictl pull $i
done
Image is up to date for sha256:9dc6939e7c573673801790fcfad6f994282c216e005578f5836b5fafc6685fc2
Image is up to date for sha256:10541d8af03f40fae257735edd69b6c5dd0084bb9796649409ac7b5660705148
Image is up to date for sha256:9d3465f8477c6b383762d90ec387c9d77da8a402a849265805f86feaa57aeeea
Image is up to date for sha256:ba6d7f8bc25be40b51dfeb5ddfda697527ba55073620c1c5fa04a5f0ae9e3816
Image is up to date for sha256:e6f1816883972d4be47bd48879a08919b96afcd344132622e4d444987919323c
Image is up to date for sha256:2e96e5913fc06e3d26915af3d0f2ca5048cc4b6327e661e80da792cbf8d8d9d4
Image is up to date for sha256:1cf5f116067c67da67f97bff78c4bbc76913f59057c18627b96facaced73ea0b
[root@master1 ~]# crictl images ls
IMAGE                                                             TAG                 IMAGE ID            SIZE
registry.aliyuncs.com/google_containers/coredns                   latest              1cf5f116067c6       20.9MB
registry.aliyuncs.com/google_containers/etcd                      3.5.15-0            2e96e5913fc06       56.9MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.28.15            9dc6939e7c573       34.4MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.28.15            10541d8af03f4       33.3MB
registry.aliyuncs.com/google_containers/kube-proxy                v1.28.15            ba6d7f8bc25be       28.3MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.28.15            9d3465f8477c6       18.5MB
registry.aliyuncs.com/google_containers/pause                     3.9                 e6f1816883972       322kB

初始化master集群

#生成配置模版
kubeadm config print init-defaults > init.yaml

修改配置文件

  1. nodeRegistration下name字段改为master(name: master)
  2. imageRepository字段改为阿里云的地址(imageRepository: registry.aliyuncs.com/google_containers)
  3. localAPIEndpoint字段下advertiseAddress修改为master的IP地址(advertiseAddress: 192.168.2.51)
  4. 设置cgroupDriver为systemd

    ---
    kind: KubeletConfiguration
    apiVersion: kubelet.config.k8s.io/v1beta1
    cgroupDriver: systemd

    使用--dry-run模拟安装过程,查看是否有报错
    kubeadm init --config=init.yaml --dry-run 
    #输出信息若干,没有 Error 和 Warning 就是正常
    正式部署master
    rm -rf /etc/kubernetes/tmp
    kubeadm init --config=init.yaml |tee init/init.log
    #根据安装提示执行命令
    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config

安装calico网络插件

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

查看集群状态

#使用下面两条命令中的任意一条即可
kubectl -n kube-system get pods
kubectl get pods -A
NAME                                       READY   STATUS                  RESTARTS   AGE
calico-kube-controllers-658d97c59c-vkk2n   0/1     Pending                 0          144m
calico-node-2gjfd                          0/1     Init:ImagePullBackOff   0          144m
coredns-66f779496c-562gq                   0/1     Pending                 0          152m
coredns-66f779496c-v4msh                   0/1     Pending                 0          152m
etcd-master                                1/1     Running                 0          152m
kube-apiserver-master                      1/1     Running                 0          152m
kube-controller-manager-master             1/1     Running                 0          152m
kube-proxy-kwp62                           1/1     Running                 0          152m
kube-scheduler-master                      1/1     Running                 0          152m

等待几分钟后,calcio插件会变成Running状态

kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-658d97c59c-9z9km   1/1     Running   0          9m5s
kube-system   calico-node-7ftlf                          1/1     Running   0          9m6s
kube-system   coredns-66f779496c-n7h9t                   1/1     Running   0          20m
kube-system   coredns-66f779496c-x7tvt                   1/1     Running   0          20m
kube-system   etcd-master                                1/1     Running   0          20m
kube-system   kube-apiserver-master                      1/1     Running   0          20m
kube-system   kube-controller-manager-master             1/1     Running   0          20m
kube-system   kube-proxy-tdp72                           1/1     Running   0          20m
kube-system   kube-scheduler-master                      1/1     Running   0          20m
0

评论 (0)

取消