使用kubeadm部署基于containerd的kubernet

2021-11-22  本文已影响0人  memoryoverrun

本配置基于centos7

系统配置

sudo modprobe overlay
sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

执行命令让配置生效

sudo sysctl -p /etc/sysctl.conf

安装配置containerd

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum --enablerepo=docker-ce-stable-x86_64 install containerd.io
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# Setup required sysctl params, these persist across reboots.
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system            
containerd config default | sudo tee /etc/containerd/config.toml

替换成国内镜像源
endpoint = ["https://registry-1.docker.io"] 改成 endpoint = ["https://registry.aliyuncs.com"]
启动服务

sudo systemctl enable containerd
sudo systemctl restart containerd

安装kubernetes

  1. 下载k8s工具
cat <<EOF |sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]                           
name=Kubernetes                        
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubelet kubeadm kubectl
  1. 修改kubeadm配置
kubeadm config print init-defaults > kubeadm-config.yaml
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
imageRepository: k8s.gcr.io

修改后配置

imageRepository: registry.aliyuncs.com/google_containers
  1. 配置crictl
crictl config runtime-endpoint /run/containerd/containerd.sock

部署集群

master节点

kubeadm init --config=kubeadm.yaml

集群时区

以flanneld为例
先创建ds-patch.yaml文件

apiVersion: v1
metadata:
  name: kube-flannel-ds
spec:
  template:
    spec:
      containers:
      - name: kube-flannel
        volumeMounts:
        - name: timezone
          mountPath: /etc/localtime
      volumes:
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai

然后打补丁

kubectl patch --namespace=kube-system ds/kube-flannel-ds --patch "$(cat ds-patch.yaml)"
上一篇下一篇

猜你喜欢

热点阅读