k8s部署
搭建k8s需要三台服务器,配置的主节点和工作节点我都是用2核4G
# 1 设置每一台服务器的名字:第一台:hostnamectl set-hostname k8s-master第二台:hostnamectl set-hostname k8s-node1第三台:hostnamectl set-hostname k8s-node2
#2所有机器 将selinux 设置为permissive 模式(相当于禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#3所有机器 关闭交换分区swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#4 所有机器添加域名映射,ip需要修改为自己的服务器的内网,分别在三台机器上执行
echo "内网ip地址 k8s-master" >> /etc/hosts
echo "内网ip地址 k8s-node1" >> /etc/hosts
echo "内网ip地址 k8s-node2" >> /etc/hosts
安装k8s三大件kubelet、kubectl、kubeadmin
#1 配置安装地址cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF#2安装 kubelet,kubeadm,kubectl
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.93 进行启动-非必需
#sudo systemctl enable --now kubelet
4 检查服务状态-非必需
#systemctl status kubelet
kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环 Active: activating (auto-restart) #5 生成镜像执行文件
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF#6 赋予文件执行权限并执行-非必需
chmod +x ./images.sh && ./images.sh#7 主节点初始化
第一个ip为主节点master的内网ip,
第二个ip是service 分配ip的范围
第三个ip是pods中的容器所分配ip的范围
三个ip范围不能重复kubeadm init \
--apiserver-advertise-address=主节点内网ip \
--control-plane-endpoint=k8s-master \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16
第一步 主节点执行:mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config第二步:命令24小时有效
超过24小时 在主节点重新生成新令牌kubeadm token create --print-join-command其他主节点加入主节点:kubeadm join k8s-master:6443 --token 0sv40e.qdb88eq3f6ii16hq \--discovery-token-ca-cert-hash sha256:a09b7045234193afb8047812adc23016b97edaa118cf5b861ff1c9296f0625d3 \--control-plane
安装完成