部署k8s集群
要求:
主机192.168.199.149(master)node节点(192.168.199.150,192.168.199.151)2个cpu或更多
所有机器可以联网,湖湘之间可以ping同,关闭防火墙,selinux,禁止swap分区(swapoff -a)
时间同步
yum install ntpdate -y
ntpdate us.pool.ntp.org
hwclock -w
配置域名
每台主机都要添加
cat >> /etc/hosts << EOF
192.168.42.135 master.local
192.168.42.136 node01.local
192.168.42.137 node02.local
EOF
配置主机名
192.168.199.149上执行 hostnamectl set-hostname master.local
192.168.199.150上执行 hostnamectl set-hostname node01.local
192.168.199.151上执行 hostnamectl set-hostname node02.local
配置网络
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 --system
免密登录
在master.local节点上执行
ssh-keygen
ssh-copy-id 192.168.199.150
ssh-copy-id 192.168.199.151
安装docker+kubeadm+kubelet(所有节点)
安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo (这是一条命令)
yum -y install docker-ce-20* docker-ce-cli-20*
systemctl enable docker && systemctl start docker
镜像加速
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"exec-opts":["native.cgroupdriver=systemd"]
}
systemctl restart docker
配置yum源
systemctl restartwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo docker(一条命令)
cat /etc/yum.repos.d/kubernetes.repo
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1
gpgcheck=0
yum clean all
yum makecache fast
安装kubeadm,kubelet,kubectl
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl restart kubelet
systemctl enable kubelet
部署kubenetes master
在master.local上执行(后面的10.244.0.0和10.96.0.0自己指定IP)
kubeadm init --apiserver-advertise-address=192.168.199.149 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --v=5
执行成功后会出现下面内容
完成后执行
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
加入Kubernetes Node
在node01.local和node02.local节点上执行(就是部署kubenetes master成功后出现的内容)
kubeadm join 192.168.199.149:6443 --token 5u6o45.tjv55cuss6khnw5o --discovery-token-ca-cert-hash sha256:b6ccef8f6727df9b43940886e19b163035754e3ce45c57b5831b480a7d979c47
查看部署是否成功
分别在master.local和node01.local上执行
出现下面则代表k8s集群部署成功
报错一:部署完集群查看master组件是否健康
修改下面目录中的kube-controller-manager.yml和kube-scheduler.yml,把- --port=0 那一行注释掉