前情提要

k8s高版本已经不支持docker使用,建议使用containerd 本教程使用openEuler22.03-LTS操作系和k8s的1.20版本为例

准备环境

cat >>/etc/hosts<<EOF
192.168.100.16  k8s-master
192.168.100.17  k8s-node01
EOF
swapoff -a
# 防止开机自动挂载 swap 分区
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
setenforce 0
systemctl disable firewalld && systemctl stop firewalld
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.max_map_count=262144
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

cat <<EOF > /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/debug-x86_64/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/debug-x86_64/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo x86_64
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/debug-x86_64/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

EOF

yum clean all && yum makecache

安装kube

yum install kubernetes-cni-1.2.0-0.x86_64 kubelet-1.20.15-0.x86_64 kubectl-1.20.15-0.x86_64 kubeadm-1.20.15-0.x86_64 -y

yum install containerd.io -y

systemctl enable kubelet --now

systemctl daemon-reload

systemctl restart containerd

systemctl enable containerd

containerd config default > /etc/containerd/config.toml

vim /etc/containerd/config.toml

修改成SystemCgroup

SystemdCgroup = true

alt text

修改pause镜像

sandbox_image = "dyrnq/pause:3.2"

alt text

修改runtime_type

runtime_type = "io.containerd.runtime.v1.linux"

alt text

假如需要把默认的cgroupfs改成systemdfs的话(此步骤非必需)

[root@2203-16 ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

[root@2203-16 ~]# vim /etc/containerd/config.toml
...
systemd_cgroup = true
...

# 重启containerd
systemctl restart containerd

alt text

添加crictl.yaml

cat <<EOF > /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 2
debug: false
pull-image-on-create: true
EOF

拉取镜像并init

systemctl daemon-reload
systemctl restart containerd

kubeadm config images pull --kubernetes-version=v1.20.15 --image-repository=dyrnq
ctr -n k8s.io image pull docker.io/coredns/coredns:1.7.0
ctr -n k8s.io image tag docker.io/coredns/coredns:1.7.0 docker.io/dyrnq/coredns:1.7.0

(只在master节点操作)

kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.20.15 --image-repository=dyrnq  --image-repository=registry.aliyuncs.com/google_containers

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

添加node节点

kubeadm token create --print-join-command

flannel安装

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

ctr -n docker.io images import flannel151.tar
ctr -n k8s.io images import flannel0254.tar


vi kube-flannel.yml  # 修改cpu和内存的限制大小

kubectl apply -f kube-flannel.yml

重置kubelet环境

kubeadm reset

关注作者

alt text

results matching ""

    No results matching ""