硬件需求
2 cpu 4g ram
(Install Docker CE)
Set up the repository
Install required packages
yum install -y yum-utils device-mapper-persistent-data lvm2
Add the Docker repository
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
Install Docker CE
yum update -y && yum install -y
containerd.io-1.2.13
docker-ce-19.03.8
docker-ce-cli-19.03.8
Create /etc/docker
mkdir /etc/docker
Set up the Docker daemon
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
Restart Docker
systemctl daemon-reload
systemctl restart docker
(安装 kubeadm、kubelet 和 kubectl)
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl –disableexcludes=kubernetes
systemctl enable –now kubelet
cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
lsmod | grep br_netfilter
modprobe br_netfilter
lsmod | grep br_netfilter
修改 /etc/sysconfig/kubelet 文件
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd
需要重新启动 kubelet:
systemctl daemon-reload
systemctl restart kubelet
参考链接:
利用 kubeadm 创建高可用集群 | Kubernetes
高可用架构图:
https://kubernetes.io/images/kubeadm/kubeadm-ha-topology-external-etcd.svg
https://kubernetes.io/images/kubeadm/kubeadm-ha-topology-stacked-etcd.svg