K8s实战——搭建集群,实现高可用!
运发开发必备,搭建1主2从k8s高可用集群!
搭建单master集群
使用kubeadm
3台机 centos7
2核 4G + 40G
角色 | IP |
---|---|
master | 39.108.157.20 |
node1 | 39.108.157.13 |
node2 | 39.108.157.31 |
环境
购买服务器:因为实验需要多台,但时间不用很长,本实验就购买3台按量付费。实验完毕关掉机器就行!否则会扣钱!
查看服务器实例状态
打开xshell,操作比较方便!这是我实验使用的服务器和名字。
本次实验采用低配的一主二从。
k8s -master 39.108.157.20(master)
k8s -node1 39.108.157.13(salve)
k8s -node2 39.108.158.31(salve)
1、在xshell上登陆以上3台服务器
将3台服务器上的防火墙都关闭
关闭sel
关闭swap(为了分区)
设置主机名
在master添加hosts
# 将桥接的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
安装yum 并同步时间
安装docker
docker --version#查看版本号
至此,docker安装完毕
更换阿里云镜像并查看 docker info
添加阿里云yum 软件源
2、安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号部署:
$ sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
$ systemctl enable kubelet #开机启动
3、部署Kuberneter Master
在master节点上执行
#各个节点都要执行,让大家都知道谁是主节点
#所有机器添加master域名映射,以下需要修改为自己的
echo "172.29.8.95 cluster-endpoint" >> /etc/hosts
如果执行成功了,可以在每个节点ping cluster-endpoint 通
即说明成功将各个给域名添加的映射添加到每个节点的hosts中
$ kubeadm init \
--apiserver-advertise-address=39.108.157.20 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
至此kubeadm 初始化成功!
上图的命令要保存下来,后面将节点设置为主节点或者是子节点都是要用到这些命令
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:
#主节点
kubeadm join cluster-endpoint:6443 --token sdttbq.qgiqyltedh8njk3w \
--discovery-token-ca-cert-hash sha256:e1bff452e492ff887d1b9a32737b8862647e314a186711a72a04a9980e9be0f0 \
--control-plane
#工作节点
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join cluster-endpoint:6443 --token sdttbq.qgiqyltedh8njk3w \
--discovery-token-ca-cert-hash sha256:e1bff452e492ff887d1b9a32737b8862647e314a186711a72a04a9980e9be0f0
打开另一个窗口查看镜像
按照提示将该节点设置为主节点,并查看节点情况。我们可以看到本节点k8smaster已经存在了。但是状态是NotReady!
拉取并将配置文件应用,让集群中的节点可以相互通信
curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
下载好网络插件后,主节点已经是就绪状态了
查看主节点上面pod
kubectl get pod -A
子节点也需要安装三大工具,配置的命令跟主节点的一样,这里就省略了,相关的参考上文!
4、将工作节点添加到主节点上
将刚才初始化好主节点保存下来的命令中,选择添加工作节点的命令,在子节点上执行命令,就可以添加到集群中!!
在主节点查看已有的节点。至此,k8s集群搭建完成!!
历时2天,经费7快多!!真是不容易,现在体验到做实验真的也要花钱,在学校的时候没有好好利用学校的资源,真是可惜!!!
不过就是一包薯片的价格,虽然是看文档机械操作,但是中间也躺了很多次坑!
更多推荐
所有评论(0)