当前位置: 首页 > news >正文

小白到运维工程师自学之路 第七十五集 (Kubernetes 企业级高可用部署)2

 8、添加master节点

在k8s-master2和k8s-master3节点创建文件夹
mkdir -p /etc/kubernetes/pki/etcd在k8s-master1节点执行
从k8s-master1复制密钥和相关文件到k8s-master2和k8s-master3
scp /etc/kubernetes/admin.conf root@192.168.77.15:/etc/kubernetes 
scp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root@192.168.77.15:/etc/kubernetes/pki
scp /etc/kubernetes/pki/etcd/ca.* root@192.168.77.15:/etc/kubernetes/pki/etcdscp /etc/kubernetes/admin.conf root@192.168.77.16:/etc/kubernetes 
scp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root@192.168.77.16:/etc/kubernetes/pki
scp /etc/kubernetes/pki/etcd/ca.* root@192.168.77.16:/etc/kubernetes/pki/etcd

kubeadm token create --ttl 0 --print-join-command
kubeadm token list

将其他master节点加入集群

k8s-master2和k8s-master3都需要加入

令牌最后要加上--control-plane

kubeadm join master.k8s.io:6443 --token v1igjz.rsq683im1cbqksur     --discovery-token-ca-cert-hash sha256:c4b73babba1252778d643f80c4c6f77242a3f0aa7a670090bda682eabc12e225 --control-plane

 cni-plugins-linux-amd64-v0.8.6.tgz(需要去网上下载)

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
tar xf cni-plugins-linux-amd64-v0.8.6.tgz
cp flannel /opt/cni/bin/
docker load < flannel_v0.12.0-amd64.tar
kubectl get nodes

 9、加入Kubernetes Node

直接在node节点服务器上执行k8s-master1初始化成功后的消息即可

kubeadm join master.k8s.io:6443 --token v1igjz.rsq683im1cbqksur     --discovery-token-ca-cert-hash sha256:c4b73babba1252778d643f80c4c6f77242a3f0aa7a670090bda682eabc12e225 docker load < flannel_v0.12.0-amd64.tar

node2和node3的操作和node1一样

 查看节点状态

四、测试Kubernetes集群

所有node节点下载nginx
docker pull nginx在master1上创建一个pod
mkdir demo
cd demo
vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector: matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80

kubectl create -f nginx-deployment.yaml
kubectl get pods
kubectl get pods -o wide

创建Service资源清单

在创建的 nginx-service 资源清单中,定义名称为 nginx-service 的 Service、标签选择器为 app: nginx、type 为 NodePort 指明外部流量可以访问内部容器。在 ports 中定义暴露的端口库号列表,对外暴露访问的端口是 80,容器内部的端口也是 80。

vim nginx-service.yaml
kind: Service
apiVersion: v1
metadata:name: nginx-service
spec:selector:app: nginxtype: NodePortports:- protocol: TCPport: 80
targetPort: 80

kubectl create -f nginx-service.yaml
kubectl get svc

通过虚拟IP访问浏览器

测试负载均衡

将master关机模拟服务器宕机,然后再查看

再访问web页面

可以看到web应用正常工作

去master2上查看,可以发现虚拟IP已经转移到了master2的ens33网卡上了,说明负载均衡配置成功

域名也是可以访问的但是由于还要配置windows的防火墙与dns这里就适用命令测试了

以上就是Kubernetes 企业级高可用部署

如有错误欢迎各位大佬批评指正,我们共同进步

http://www.lryc.cn/news/130486.html

相关文章:

  • Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist
  • postgresql中基础sql查询
  • 如何做好科技文献资料的翻译!
  • 处理Selenium3+python3定位鼠标悬停才显示的元素
  • python通过S7协议读取西门子200smart数据
  • 深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)
  • 【云原生】K8S控制详解
  • CentOS 8 安装 oracle 23c CentOS9 Error deal
  • sklearn-决策树
  • 元宇宙之应用(05) 远程医疗手术
  • centos7在线安装 jdk1.8+tomcat+mysql8+nginx+docker
  • Vue中实现分页
  • vue3 + antv/x6 实现拖拽侧边栏节点到画布
  • 视频云存储/安防监控/视频汇聚EasyCVR平台新增设备经纬度选取
  • CentOS7源码安装MySQL详细教程
  • SpringBoot + Vue 微人事(十二)
  • 上半年巴比食品增收不增利,下半年失速的团餐业务能否“复苏”?
  • Java基础篇--内部类
  • 完全备份、增量备份、差异备份、binlog日志
  • Flutter实现Service + UI 全面跨平台
  • 微软商店的ubuntu 连不上网Temporary failure in name resolution
  • “深入剖析JVM内部工作原理:解密Java虚拟机“
  • 数据结构与算法基础
  • 人工智能任务1-【NLP系列】句子嵌入的应用与多模型实现方式
  • 【Java并发编程面试题(60道)】
  • Python:逢七拍腿游戏
  • esp32C3 micropython oled 恐龙快跑游戏
  • 53.Linux day03 文件查看命令,vi/vim常用命令
  • YOLOv8改进后效果
  • 小程序的数据绑定和事件绑定