找回密码
 立即注册
首页 业界区 业界 k8s1.26安装和组件原理

k8s1.26安装和组件原理

寇秀娟 2025-7-20 15:38:58
一、k8s1.26环境准备
  1. k-master 192.168.50.100
  2. k-node1 192.168.50.101
  3. k-node2 192.168.50.102
复制代码
  1. 安装docker 默认会安装containerd
  2. config.toml里面需要配置
  3. 先要安装k8s才会有crictl命令
  4. 安装calico网络插件
  5. v3.25
  6. 下载2个文件
  7. 修改自定义的文件,改为pod的dir网段才行
复制代码
kubeadm init --apiserver-advertise-address=192.168.200.10 --kubernetes-version=v1.23.0 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers
1、前置工作

1、关掉防火墙和selinux
  1. systemctl disable firewalld.service --now
  2. setenforce 0
  3. vim /etc/selinux/config
复制代码
2、关闭swap交换分区
  1. swapoff -a
复制代码
3、打开linux内核工具
  1. vim /etc/sysctl.d/k8s.conf
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. net.ipv4.ip_forward = 1
  5. sysctl -p /etc/sysctl.d/k8s.conf
复制代码
2、重要工作

1、配置docker源和kubernetes源
  1. yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  5. enabled=1
  6. gpgcheck=0
  7. repo_gpgcheck=0
  8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
复制代码
2、安装docker-ce
  1. yum -y install docker-ce
  2. systemctl enable docker --now
复制代码
3、修改config.toml文件
  1. containerd config default > /etc/containerd/config.toml
  2. vim config.toml
  3. SystemdCgroup = true
  4. sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
  5. # 配置拉取镜像策略
  6. # 因为国内访问不到dockerhub或者其他,就需要使用一些magic
  7.       [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  8.          [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]  # 拉取registry.k8s.io镜像从下面网站拉取
  9.             endpoint = ["https://registry-k8s-io.mirrors.sjtug.sjtu.edu.cn"]
  10.          [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]  # 拉取docker.io镜像也是这样的
  11.             endpoint = ["https://自己网站"]     
  12. systemctl restart containerd
  13. systemctl enable containerd
复制代码
4、安装kubelet,kubeadm,kubectl
  1. yum -y install kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0
  2. # 启动kubelet
  3. systemctl enable kubelet --now
复制代码
5、设置容器运行时
  1. crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
  2. crictl config image-endpoint unix:///var/run/containerd/containerd.sock
复制代码
3、只在master上面做

1、kubernetes初始化
  1. kubeadm init --apiserver-advertise-address=192.168.50.100 \
  2. --kubernetes-version=v1.26.0 \
  3. --pod-network-cidr=10.244.0.0/16 \
  4. --image-repository=registry.aliyuncs.com/google_containers
复制代码

  • --image-repository 拉取控制平面镜像的仓库,etcd,api-server等等
  • --apiserver-advertise-address master的地址
  • --pod-network-cid pod的网段
2、加入node节点


  • node1,node2上面需要执行
  1. [root@k-node1 ~]# kubeadm join 192.168.50.100:6443 --token q6tybk.47n9q7zymfpxeufi --discovery-token-ca-cert-hash sha256:d949c3809ba2f36425000119f9e7c7e29f3715aebd568b91eb8af309a86de09a
  2. [preflight] Running pre-flight checks
  3.         [WARNING FileExisting-tc]: tc not found in system path
  4. [preflight] Reading configuration from the cluster...
  5. [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
  6. [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
  7. [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
  8. [kubelet-start] Starting the kubelet
  9. [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
  10. This node has joined the cluster:
  11. * Certificate signing request was sent to apiserver and a response was received.
  12. * The Kubelet was informed of the new secure connection details.
  13. Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
  14. [root@k-node2 containerd]# kubeadm join 192.168.50.100:6443 --token q6tybk.47n9q7zymfpxeufi --discovery-token-ca-cert-hash sha256:d949c3809ba2f36425000119f9e7c7e29f3715aebd568b91eb8af309a86de09a
复制代码

  • 因为没有安装网络插件,节点直接的pod不能进行通信,因此是notready状态
3、安装calico网络插件


  • 下载calico网络插件yaml文件
  • 安装的版本是v3.25.2
  • https://archive-os-3-25.netlify.app/calico/3.25/getting-started/kubernetes/quickstart
  • 下载2个yaml文件
  1. # 直接进行应用
  2. kubectl create -f tigera-operator.yaml
  3. # 修改custom-resources.yaml中ip地址即可,为pod的网段地址即可
  4. kubectl create -f custom-resources.yaml
复制代码
  1. [root@k-master ~]# kubectl get pod -A
  2. NAMESPACE          NAME                                       READY   STATUS    RESTARTS   AGE
  3. calico-apiserver   calico-apiserver-5948d966b5-c5x9j          1/1     Running   0          70m
  4. calico-apiserver   calico-apiserver-5948d966b5-q29qv          1/1     Running   0          70m
  5. calico-system      calico-kube-controllers-84dd694985-znfdz   1/1     Running   0          72m
  6. calico-system      calico-node-lf6f5                          1/1     Running   0          72m
  7. calico-system      calico-node-rtbfq                          1/1     Running   0          72m
  8. calico-system      calico-node-tcz85                          1/1     Running   0          72m
  9. calico-system      calico-typha-665f4cfb48-4pzz5              1/1     Running   0          72m
  10. calico-system      calico-typha-665f4cfb48-q8jnw              1/1     Running   0          72m
  11. calico-system      csi-node-driver-b9fps                      2/2     Running   0          72m
  12. calico-system      csi-node-driver-d4mr9                      2/2     Running   0          72m
  13. calico-system      csi-node-driver-qzcwr                      2/2     Running   0          72m
  14. default            centos8-demo                               1/1     Running   0          40m
  15. kube-system        coredns-5bbd96d687-rsnp6                   1/1     Running   0          95m
  16. kube-system        coredns-5bbd96d687-svq2d                   1/1     Running   0          95m
  17. kube-system        etcd-k-master                              1/1     Running   0          95m
  18. kube-system        kube-apiserver-k-master                    1/1     Running   0          95m
  19. kube-system        kube-controller-manager-k-master           1/1     Running   0          95m
  20. kube-system        kube-proxy-fgct4                           1/1     Running   0          93m
  21. kube-system        kube-proxy-lfsvb                           1/1     Running   0          95m
  22. kube-system        kube-proxy-mk56p                           1/1     Running   0          94m
  23. kube-system        kube-scheduler-k-master                    1/1     Running   0          95m
  24. tigera-operator    tigera-operator-66654c8696-gxkmg           1/1     Running   0          75m
复制代码
4、查看node状态和创建pod测试网络
  1. [root@k-master ~]# kubectl get node
  2. NAME       STATUS   ROLES           AGE   VERSION
  3. k-master   Ready    control-plane   69m   v1.26.0
  4. k-node1    Ready    <none>          68m   v1.26.0
  5. k-node2    Ready    <none>          67m   v1.26.0
  6. [root@k-master ~]# kubectl get pod
  7. NAME           READY   STATUS    RESTARTS   AGE
  8. centos8-demo   1/1     Running   0          14m
  9. [root@k-master ~]# kubectl exec -ti centos8-demo -- /bin/bash
  10. [root@centos8-demo /]# ping qq.com
  11. PING qq.com (113.108.81.189) 56(84) bytes of data.
  12. 64 bytes from 113.108.81.189 (113.108.81.189): icmp_seq=1 ttl=127 time=44.10 ms
复制代码
5、补全功能

[code]echo 'source
您需要登录后才可以回帖 登录 | 立即注册