一、二进制搭建k8s v1.20
节点 | ip | 安装的软件 |
master01 | 192.168.2.11 | kube-apiserver、controller-manager、scheduler、etcd |
node01 | 192.168.2.12 | kubelet、kube-proxy、docker |
node02 | 192.168.2.13 | kubelet、kube-proxy、docker |
etcd01 | 192.168.2.11 | |
etcd02 | 192.168.2.12 | |
etcd03 | 192.168.2.13 | |
master02 | 192.168.2.14 | |
负载均衡01 | 192.168.2.16 | |
负载均衡02 | 192.168.2.17 |
vip:192.168.2.100
1.1 操作系统初始化配置(master:192.168.2.11,node01:192.168.2.12,node02:192.168.2.13)
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X#关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab#根据规划设置主机名
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02
#在master01 node01 node02都添加hosts
cat >> /etc/hosts << EOF
192.168.10.80 master01
192.168.10.20 master02
192.168.10.18 node01
192.168.10.19 node02
EOF#调整内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOFsysctl --system
#时间同步
yum install ntpdate -y
ntpdate time.windows.com
1.2 node 节点部署docker引擎(192.168.2.12、192.168.2.13)
//所有 node 节点部署docker引擎
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.iosystemctl start docker.service
systemctl enable docker.service
1.3 生成Etcd证书
cd /opt/
[root@master01 opt]#ls
cfssl cfssl-certinfo cfssljson
[root@master01 opt]# mv cfssl* /usr/local/bin/
[root@master01 opt]#
[root@master01 opt]#chmod +x /usr/local/bin/cfssl*
[root@master01 opt]#ll /usr/local/bin/
总用量 18808
-rwxr-xr-x. 1 root root 10376657 2月 17 2021 cfssl
-rwxr-xr-x. 1 root root 6595195 2月 17 2021 cfssl-certinfo
-rwxr-xr-x. 1 root root 2277873 2月 17 2021 cfssljsonmkdir /opt/k8s
cd /opt/k8s/#上传 etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中
chmod +x etcd-cert.sh etcd.sh#创建用于生成CA证书、etcd 服务器证书以及私钥的目录
mkdir /opt/k8s/etcd-cert
mv etcd-cert.sh etcd-cert/
cd /opt/k8s/etcd-cert/
./etcd-cert.sh #生成CA证书、etcd 服务器证书以及私钥ls
ca-config.json ca-csr.json ca.pem server.csr server-key.pem
ca.csr ca-key.pem etcd-cert.sh server-csr.json server.pem
1.4 在master节点上安装etcd
cd /opt/k8s/
tar zxvf etcd-v3.4.9-linux-amd64.tar.gz
ls etcd-v3.4.9-linux-amd64
Documentation etcd etcdctl README-etcdctl.md README.md READMEv2-etcdctl.md
------------------------------------------------------------------------------------------
etcd就是etcd 服务的启动命令,后面可跟各种启动参数
etcdctl主要为etcd 服务提供了命令行操作
------------------------------------------------------------------------------------------#创建用于存放 etcd 配置文件,命令文件,证书的目录
mkdir -p /opt/etcd/{cfg,bin,ssl}cd /opt/k8s/etcd-v3.4.9-linux-amd64/
mv etcd etcdctl /opt/etcd/bin/
cp /opt/k8s/etcd-cert/*.pem /opt/etcd/ssl/cd /opt/k8s/
./etcd.sh etcd01 192.168.10.80 etcd02=https://192.168.10.18:2380,etcd03=https://192.168.10.19:2380
#进入卡住状态等待其他节点加入,这里需要三台etcd服务同时启动,如果只启动其中一台后,服务会卡在那里,直到集群中所有etcd节点都已启动,可忽略这个情况#可另外打开一个窗口查看etcd进程是否正常
ps -ef | grep etcd
1.5 在两个node节点上安装etcd
#把etcd相关证书文件、命令文件和服务管理文件全部拷贝到另外两个etcd集群节点
scp -r /opt/etcd/ root@192.168.10.18:/opt/
scp -r /opt/etcd/ root@192.168.10.19:/opt/
scp /usr/lib/systemd/system/etcd.service root@192.168.10.18:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root&