github.com/qsunny/k8s@v0.0.0-20220101153623-e6dca256d5bf/k8s_install/install_kubelet.sh (about)

     1  #!/bin/bash
     2  
     3  # 在 master 节点和 worker 节点都要执行
     4  
     5  # 安装 containerd
     6  # 参考文档如下
     7  # https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd
     8  
     9  cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
    10  overlay
    11  br_netfilter
    12  EOF
    13  
    14  sudo modprobe overlay
    15  sudo modprobe br_netfilter
    16  
    17  # Setup required sysctl params, these persist across reboots.
    18  cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
    19  net.bridge.bridge-nf-call-iptables  = 1
    20  net.ipv4.ip_forward                 = 1
    21  net.bridge.bridge-nf-call-ip6tables = 1
    22  EOF
    23  
    24  # Apply sysctl params without reboot
    25  sysctl --system
    26  
    27  # 卸载旧版本
    28  yum remove -y containerd.io
    29  
    30  # 设置 yum repository
    31  yum install -y yum-utils device-mapper-persistent-data lvm2
    32  yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    33  
    34  # 安装 containerd
    35  yum install -y containerd.io-1.4.3
    36  
    37  mkdir -p /etc/containerd
    38  containerd config default > /etc/containerd/config.toml
    39  
    40  sed -i "s#k8s.gcr.io#registry.aliyuncs.com/k8sxio#g"  /etc/containerd/config.toml
    41  sed -i '/containerd.runtimes.runc.options/a\ \ \ \ \ \ \ \ \ \ \ \ SystemdCgroup = true' /etc/containerd/config.toml
    42  sed -i "s#https://registry-1.docker.io#${REGISTRY_MIRROR}#g"  /etc/containerd/config.toml
    43  
    44  
    45  systemctl daemon-reload
    46  systemctl enable containerd
    47  systemctl restart containerd
    48  
    49  
    50  # 安装 nfs-utils
    51  # 必须先安装 nfs-utils 才能挂载 nfs 网络存储
    52  yum install -y nfs-utils
    53  yum install -y wget
    54  
    55  # 关闭 防火墙
    56  systemctl stop firewalld
    57  systemctl disable firewalld
    58  
    59  # 关闭 SeLinux
    60  setenforce 0
    61  sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
    62  
    63  # 关闭 swap
    64  swapoff -a
    65  yes | cp /etc/fstab /etc/fstab_bak
    66  cat /etc/fstab_bak |grep -v swap > /etc/fstab
    67  
    68  # 配置K8S的yum源
    69  cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    70  [kubernetes]
    71  name=Kubernetes
    72  baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    73  enabled=1
    74  gpgcheck=0
    75  repo_gpgcheck=0
    76  gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    77         http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    78  EOF
    79  
    80  # 卸载旧版本
    81  yum remove -y kubelet kubeadm kubectl
    82  
    83  # 安装kubelet、kubeadm、kubectl
    84  # 将 ${1} 替换为 kubernetes 版本号,例如 1.20.1
    85  yum install -y kubelet-${1} kubeadm-${1} kubectl-${1}
    86  
    87  crictl config runtime-endpoint /run/containerd/containerd.sock
    88  
    89  # 重启 docker,并启动 kubelet
    90  systemctl daemon-reload
    91  systemctl enable kubelet && systemctl start kubelet
    92  
    93  containerd --version
    94  kubelet --version