一、Kubeadm 部署
| 集群服务器主机名 |
服务器IP地址 |
集群服务器部署的服务 |
| master(2C/4G,cpu核心数要求大于2) |
192.168.145.15 |
docker、kubeadm、kubelet、kubectl、flannel |
| node01(2C/2G) |
192.168.145.30 |
docker、kubeadm、kubelet、kubectl、flannel |
| node02(2C/2G) |
192.168.145.45 |
docker、kubeadm、kubelet、kubectl、flannel |
1、在所有节点上安装Docker和kubeadm
2、部署Kubernetes Master
3、部署容器网络插件
4、部署 Kubernetes Node,将节点加入Kubernetes集群中
1. 环境准备
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02
vim /etc/hosts
192.168.145.15 master01
192.168.145.30 node01
192.168.145.45 node02

cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
sysctl

2. 所有节点安装 docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager
yum install -y docker-ce docker-ce-cli containerd.io

cd /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://00ub0bmk.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "500m", "max-file": "3"
}
}
EOF

systemctl daemon-reload
systemctl start docker.service
systemctl enable docker.service
docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

3. 所有节点安装 kubeadm,kubelet 和 kubectl
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https:
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https:
EOF
yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15
systemctl enable kubelet.service

4. 部署 K8S 集群
4.1 配置 master01 节点
kubeadm config images list

kubeadm config print init-defaults > /opt/kubeadm-config.yaml
cd /opt/
vim kubeadm-config.yaml
......
11 localAPIEndpoint:
12 advertiseAddress: 192.168.145.15
13 bindPort: 6443
......
32 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
33 kind: ClusterConfiguration
34 kubernetesVersion: v1.20.15
35 networking:
36 dnsDomain: cluster.local
37 podSubnet: 10.244.0