k8s 集群搭建
官方教程
ubuntu20
操作系统初始化配置
# 关闭防火墙
ufw disable
# 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
# 根据规划设置主机名
hostnamectl set-hostname
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.3.54 k8s-master1
192.168.3.55 k8s-node1
192.168.3.56 k8s-node2
192.168.3.57 k8s-node3
EOF
# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
kubelet kubeadm kubectl 安装-使用阿里源
国内使用官方网址 -- 会有网络连接问题
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat > /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet=1.20.11-00 kubeadm=1.20.11-00 kubectl=1.20.11-00
# 锁定 软件版本
sudo apt-mark hold kubelet kubeadm kubectl
# 设置开机自启-kubelet
systemctl enable kubelet
初始化集群master
kubeadm init --apiserver-advertise-address=192.168.3.54 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --v=5
--apiserver-advertise-address master节点主机ip
--image-repository 镜像拉取地址
--kubernetes-version k8s版本指定;不指定会默认安装最新版本
--service-cidr 集群service网段规划
--pod-network-cidr 集群service网段规划
--v=5 查看初始化详情
成功截图

请注意图中的 节点加入集群的命令 -- 这个会在后续节点加入时,使用到;
kubeadm join 192.168.3.54:6443 --token 364g4z.v47bi2rqeo1qjnce \
--discovery-token-ca-cert-hash sha256:a66a8884e1f19a34daac72dac1d878f7c679bb970fdb0a36a45b66c1508942ff
添加配置信息
初始化集群完成时,会有该提示执行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
验证k8s集群安装是否成功
kubectl get nodes 查看 k8s 集群节点
成功截图

集群节点加入-node
将 master 的配置文档<$HOME/.kube/config>复制到需要加入集群的node节点机器中
scp $HOME/.kube/config root@192.168.3.56:~/.kube/config
加入集群
kubeadm join 192.168.3.54:6443 --token 364g4z.v47bi2rqeo1qjnce \
--discovery-token-ca-cert-hash sha256:a66a8884e1f19a34daac72dac1d878f7c679bb970fdb0a36a45b66c1508942ff
k8s 网络模型 -
未配置时, 节点的 status 为 NotReady; 网络模型有多种 常用的有 flannel、calico;
这里我使用的 calico;
- 这里的操作节点是 master
- 下载配置文件
curl https://docs.projectcalico.org/manifests/calico.yaml -O - 创建对应应用
kubectl apply -f calico.yaml
成功截图

