基础环境搭建
k8s 环境规划:
-
Pod 网段: 10.0.0.0/16
-
Service 网段: 10.255.0.0/16
实验环境规划:
-
操作系统:centos7.9
-
配置: 4Gib 内存/4vCPU/100G 硬盘
-
网络:NAT
-
开启虚拟机的虚拟化
| K8S 集群角色 | Ip | 主机名 | 安装的组件 |
|---|---|---|---|
| 控制节点 | 172.16.40.11 | master1 | apiserver、controller-manager、scheduler、etcd、docker、keepalived、nginx |
| 控制节点 | 172.16.40.12 | master2 | apiserver、controller-manager、scheduler、etcd、docker、keepalived、nginx |
| 控制节点 | 172.16.40.13 | master3 | apiserver、controller-manager、scheduler、etcd、docker |
| 工作节点 | 172.16.40.101 | node1 | kubelet、kube-proxy、docker、calico、coredns |
| Vip | 172.16.40.201 | ---- | ---- |
网卡配置文件
# /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=5f1ab3c1-7560-4a30-9b41-8cf8f32fe185
DEVICE=eth0
ONBOOT=yes
IPADDR=172.16.40.101
NETMASK=255.255.255.0
#GATEWAY=172.16.40.2
DNS1=114.114.114.114
hosts文件
# /etc/hosts
172.16.40.11 master1
172.16.40.12 master2
172.16.40.13 master3
172.16.40.101 node1
配置SSH免密登录
ssh-keygen -t rsa # 生成rsa密钥对
ssh-copy-id -i .ssh/id_rsa.pub master1 # 免密登录master1
ssh-copy-id -i .ssh/id_rsa.pub master2 # 免密登录master2
ssh-copy-id -i .ssh/id_rsa.pub master3 # 免密登录master3
ssh-copy-id -i .ssh/id_rsa.pub node1 # 免密登录node1
关闭防火墙自启动
systemctl stop firewalld && systemctl disable firewalld
关闭selinux
/etc/selinux/config
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
关闭交换分区
# /etc/fstab
swapoff -a
修改内核参数
modprobe br_netfilter # 加载模块
lsmod | grep br_netfilter
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf