xiaojizhi2023

V1

2023/03/06阅读:22主题:默认主题

kubernetes部署之二

Kubernetes 部署之二

Kubeadm 单 master 安装

规划

角色 IP 主机名 组件
master 192.168.56.129 anyu967master1 apiserver、controller-manager、scheduler、etcd、kube-proxy、docker、calico
node1 192.168.56.130 anyu967node1 kubelet、kube-proxy、docker、calico、coredns
node2 192.168.56.131 anyu967node2 kubelet、kube-proxy、docker、calico、coredns

搭建

  1. 初始化化境

    从 kubernetes 1.24 开始,dockershim 已经从 kubelet 中移除,但因为历史问题 docker 却不支持 kubernetes 主推的 CRI(容器运行时接口)标准,所以 docker 不能再作为 kubernetes 的容器运行时了,即从 kubernetesv1.24 开始不再使用 docker 了。

    推荐使用 containerd 作为 kubernetes 的容器运行时

  2. 两种不同的 CRI

    • containerd
    • cir-docker
  3. containerd

    • 安装 containerd
    [root@anyu967node1 Package]# yum install containerd
    • 配置 containerd
    [root@anyu967node1 Package]# containerd config default > /etc/containerd/config.toml
    [root@anyu967node1 Package]# vim /etc/containerd/config.toml
    # SystemdCgroup = false 改为 SystemdCgroup = true
    # sandbox_image = "k8s.gcr.io/pause:3.6" 改为 sandbox_image="registry.aliyuncs.com/google_containers/pause:3.7"

    cat > /etc/crictl.yaml <<EOF
    runtime-endpoint: unix:///run/containerd/containerd.sock
    image-endpoint: unix:///run/containerd/containerd.sock
    timeout: 10
    debug: false
    EOF

    # 配置containerd镜像加速器
    [root@anyu967node1 Package]# vim /etc/containerd/config.toml
    config_path = "/etc/containerd/certs.d"

    [root@anyu967node1 Package]# mkdir /etc/containerd/certs.d/docker.io/ -p
    [root@anyu967node1 Package]# vim /etc/containerd/certs.d/docker.io/hosts.toml
    [host."https://vh3bm52y.mirror.aliyuncs.com",host."https://registry.docker-cn.com"]
      capabilities = ["pull"]
  4. 安装

    • 镜像的拉取方式
    • 更改镜像拉取地址
    • 提前下载好镜像
     [root@anyu967node1 Package]# yum install -y kubelet kubeadm kubectl
     # 方式一
     [root@anyu967node1 Package]# kubeadm config images pull --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

     # 方式二
     [root@anyu967node1 Package]# **kubeadm config images list**
     registry.k8s.io/kube-apiserver:v1.25.4
     registry.k8s.io/kube-controller-manager:v1.25.4
     registry.k8s.io/kube-scheduler:v1.25.4
     registry.k8s.io/kube-proxy:v1.25.4
     registry.k8s.io/pause:3.8
     registry.k8s.io/etcd:3.5.5-0
     registry.k8s.io/coredns/coredns:v1.9.3

     #!/bin/sh
     for i in `kubeadm config images list`; do
         imageName=${i#registry.k8s.io/}   # 表示从左边删除到第一个指定的字符;
         docker pull registry.aliyuncs.com/google_containers/$imageName
         docker tag registry.aliyuncs.com/google_containers/$imageName registry.k8s.io/$imageName
         docker rmi registry.aliyuncs.com/google_containers/$imageName
     done

     # centos7安装k8s 1.25版本 Error getting node
     ## [[参考](https://www.cnblogs.com/gaoyuechen/p/16850801.html)]https://www.cnblogs.com/gaoyuechen/p/16850801.html
     ## [[参考](https://github.com/Mirantis/cri-dockerd/tree/master/packaging/systemd)]https://github.com/Mirantis/cri-dockerd/tree/master/packaging/systemd

     [root@anyu967master1 Package]# kubeadm reset -f
     [root@anyu967master1 Package]# kubeadm init --kubernetes-version=1.25.4 --apiserver-advertise-address=192.168.56.129 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 **--cri-socket /var/run/cri-dockerd.sock**
  5. 添加工作节点

    # 添加工作节点命令
    [root@anyu967master1 ~]# kubeadm token create --print-join-command
    [root@anyu967master1 Package]# kubectl get nodes
    NAME             STATUS     ROLES                  AGE     VERSION
    anyu967master1   NotReady   control-plane,master   47h     v1.25.4    # kubectl label node anyu967master1 node-role.kubernetes.io/master=master
    anyu967node1     NotReady   worker                 6m45s   v1.25.4    # kubectl label node anyu967node1 node-role.kubernetes.io/worker=worker
    anyu967node2     NotReady   worker                 4m15s   v1.25.4
  6. 安装网络插件

    # 安装calico网络插件(可以做网络策略)
    kubectl apply -f calico.yaml

    # 测试网络
    [root@anyu967master1 Package]# kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh
    # If you don't see a command prompt, try pressing enter.
    # ping baidu.com
    PING baidu.com (110.242.68.66): 56 data bytes
    64 bytes from 110.242.68.66: seq=0 ttl=127 time=49.951 ms

分类:

后端

标签:

云计算

作者介绍

xiaojizhi2023
V1