k8s(十四)—高可用集群部署

2023-05-16

1 部署k8s高可用原理图

在这里插入图片描述

2 清理环境

[root@server2 helm]# kubectl drain server4  下线server4
[root@server2 helm]# kubectl delete nodes server4  删除server4节点
[root@server4 ~]# kubeadm reset  清掉server4上的数据
[root@server2 helm]# kubectl drain server3 --ignore-daemonsets  下线server3
[root@server2 helm]# kubectl delete nodes server3  删除server3
node "server3" deleted
[root@server3 ~]# kubeadm reset  清掉server3上的数据
[root@server2 helm]# kubectl drain server2  --ignore-daemonsets  下线自己server2
[root@server2 helm]# kubectl delete nodes server2   删除节点
node "server2" deleted
[root@server2 helm]# kubeadm reset   清掉server2上的数据

再增加三台虚拟机server5、server6、server7
其中5和6做负载均衡和高可用
2、3、4做k8s master
7做k8s node节点

3 haproxy负载均衡部署并配置

[root@server5 ~]# yum install -y haproxy    安装haproxy负载均衡
[root@server6 ~]# yum install -y haproxy   安装haproxy负载均衡
[root@server5 ~]# cd /etc/haproxy/ 
[root@server5 haproxy]# vim haproxy.cfg  配置

在这里插入图片描述
在这里插入图片描述

[root@server5 haproxy]# systemctl restart haproxy.service   重启
[root@server5 haproxy]# netstat -antlp

在这里插入图片描述访问 172.25.50.5/admin
在这里插入图片描述

4 pacemaker高可用安装并配置

[root@server5 haproxy]# scp haproxy.cfg server6:/etc/haproxy/   将serve5上的配置文件haproxy.cfg拷贝到塞尔ver6上
[root@server5 haproxy]# cd /etc/yum.repos.d/
[root@server5 yum.repos.d]# vim dvd.repo   配置软件仓库
[dvd]
name=rhel7.6
baseurl=http://172.25.254.50/rhel7.6
gpgcheck=0

[HighAvailability]   添加高可用套件
name=HighAvailability
baseurl=http://172.25.254.50/rhel7.6/addons/HighAvailability
gpgcheck=0
[root@server5 ~]# ssh-keygen 
[root@server5 ~]# ssh-copy-id server6    给server6做免密
[root@server5 ~]# yum install -y pacemaker pcs psmisc policycoreutils-python  安装高可用集群套件
[root@server5 yum.repos.d]# scp dvd.repo server6:/etc/yum.repos.d/  将server5上的仓库拷贝到server6上
[root@server5 yum.repos.d]# ssh server6 yum install -y pacemaker pcs psmisc policycoreutils-python  serevr6上安装高可用集群套件
[root@server5 yum.repos.d]# systemctl enable --now pcsd.service   激活服务
[root@server5 yum.repos.d]# ssh server6 systemctl enable --now pcsd.service   server6上激活服务
[root@server5 yum.repos.d]# echo westos | passwd --stdin hacluster   给高可用账号添加密码
[root@server5 yum.repos.d]# ssh server6 'echo westos | passwd --stdin hacluster'   给高可用账号添加密码
[root@server5 ~]# pcs cluster auth server5 server6  添加高可用节点认证
Username: hacluster    用户
Password:             密码
server5: Authorized 
server6: Authorized
[root@server5 ~]# pcs cluster setup --name mycluster server5 server6   创建集群,集群节点为server5、server6
[root@server5 ~]# pcs cluster start --all  启动集群所有节点服务
[root@server5 ~]# pcs status   查看集群状态

在这里插入图片描述
警告原因:没有配置fence,所以可以先关掉

[root@server5 ~]# pcs property set stonith-enabled=false  禁掉
[root@server5 ~]# systemctl stop haproxy  先停止haproxy
[root@server5 ~]# systemctl disable haproxy
[root@server5 ~]# pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.50.100 cidr_netmask=32 op monitor interval=30s  创建vip资源,
op monitor interval=30s  表示对资源进行监控
[root@server5 ~]# ip addr  查看vip是否已经添加

在这里插入图片描述

测试:
[root@server5 ~]# pcs node standby   让server5下线
[root@server5 ~]# pcs status  查看集群状态

在这里插入图片描述

[root@server5 ~]# pcs node unstandby   让server5上线
[root@server5 ~]# pcs status 

在这里插入图片描述

[root@server5 ~]# pcs resource standards  查看本机可调用资源脚本
lsb
ocf
service
systemd
[root@server5 ~]# pcs resource create haproxy systemd:haproxy op monitor interval=60s   创建haproxy服务,调用systemd里面的haproxy服务
op monitor interval=60s   表示每个60s监控一次
[root@server5 ~]# pcs status  查看集群状态

在这里插入图片描述
需要添加约束,要求资源必须在同一个节点上

[root@server5 ~]# pcs resource group add  hagroup vip haproxy  添加一个group资源 , 后面跟需要绑定在一个组的资源
注意资源的顺序,谁在前谁先启动
[root@server5 ~]# pcs status   查看集群状态 ,可以发现资源都在server6上

在这里插入图片描述

5 部署k8s集群

server2、server3、server4  之前学习docker和ks都部署好了
[root@server2 ~]# vim /etc/docker/daemon.json     ##server3和server4需要同样的配置
{
  "registry-mirrors": ["https://reg.westos.org"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
[root@server2 ~]# cat /etc/sysctl.d/docker.conf    server3和server4需要同样的配置
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1	

[root@server2 ~]#  source <(kubectl completion bash) && echo 'source <(kubectl completion bash)' >> ~/.bashrc 配置kubectl命令补齐功能,然后重启     server3和server4需要同样的配置

#加载内核模块:(kube_proxy使用IPVS模式)
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
[root@server2 ~]# yum install ipvsadm -y    server3和server4需要同样的安装

[root@server2 ~]#  kubeadm config print init-defaults > kubeadm-init.yaml    将k8s默认配置放入init文件
[root@server2 ~]# vim kubeadm-init.yaml 
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 172.25.50.2  添加本机ip地质
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  imagePullPolicy: IfNotPresent
  name: server2   设置主机名
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: "172.25.50.100:6443"   添加虚拟vip,端口为haproy配置的6443
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: reg.westos.org/k8s   设置自己的私有仓库
kind: ClusterConfiguration
kubernetesVersion: 1.23.0
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16    添加pod子网(使用flannel网络主件才需要添加)
  serviceSubnet: 10.96.0.0/12
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs   设置k8s工作模式为ipvs
[root@server2 ~]# kubeadm config images pull --config kubeadm-init.yaml  预先拉取镜像,镜像之前已经传入镜像仓库,拉取比较快
[config/images] Pulled reg.westos.org/k8s/kube-apiserver:v1.23.6
[config/images] Pulled reg.westos.org/k8s/kube-controller-manager:v1.23.6
[config/images] Pulled reg.westos.org/k8s/kube-scheduler:v1.23.6
[config/images] Pulled reg.westos.org/k8s/kube-proxy:v1.23.6
[config/images] Pulled reg.westos.org/k8s/pause:3.6
[config/images] Pulled reg.westos.org/k8s/etcd:3.5.1-0
[config/images] Pulled reg.westos.org/k8s/coredns:v1.8.6
[root@server2 ~]# kubeadm init --config kubeadm-init.yaml  --upload-certs    初始化,我们设置了多个k8s master节点,需要同步证书--upload-certs

在这里插入图片描述
添加flannel网络插件:

[root@server2 ~]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml   下载flannel网络插件配置文件
[root@server2 ~]# vim kube-flannel.yml 

在这里插入图片描述
在这里插入图片描述
注:之前部署k8s所需镜像已经部署到了私有仓库直接拉取

[root@server2 ~]# kubectl apply -f kube-flannel.yml   创建
[root@server3 ~]# kubeadm join 172.25.50.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:67a2a973878f0cc293e24f154512189bba0b479e85f8c677d700531f96771198 --control-plane --certificate-key 11fb6d675bd00945a9475fdfc8650b861cf5070306a98fe970269fcb8a058b46  将server3节点添加为k8s集群的master
[root@server3 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf  设置变量
[root@server4 ~]# kubeadm join 172.25.50.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:67a2a973878f0cc293e24f154512189bba0b479e85f8c677d700531f96771198 --control-plane --certificate-key 11fb6d675bd00945a9475fdfc8650b861cf5070306a98fe970269fcb8a058b46  将server4节点添加为k8s集群的master
[root@server4 ~]# export KUBECONFIG=/etc/kubernetes/admin.conf  设置变量,自动读取
[root@server4 ~]# kubectl get nodes  查看节点,可以发现3个节点都已经加入
NAME      STATUS   ROLES                  AGE     VERSION
server2   Ready    control-plane,master   71m     v1.23.6
server3   Ready    control-plane,master   11m     v1.23.6
server4   Ready    control-plane,master   3m25s   v1.23.5

在server7上部署k8s node节点

[root@server3 yum.repos.d]# scp docker.repo k8s.repo server7:/etc/yum.repos.d/   从server3上docker、k8s 仓库拷贝到sever7上
[root@server7 ~]# yum install docker-ce -y  安装docker
[root@server7 ~]# systemctl enable --now docker 启动docker服务
[root@server3 yum.repos.d]# cd /etc/docker/
[root@server3 docker]# scp daemon.json server7:/etc/docker/  拷贝server3上配置指定私有仓库文件到server7上
[root@server7 ~]# systemctl restart docker  重启docker
[root@server3 sysctl.d]# scp docker.conf  server7:/etc/sysctl.d/   
[root@server7 ~]# sysctl --system   使之生效
[root@server3 docker]# scp -r certs.d/ server7:/etc/docker/    从server3上拷贝仓库证书到server7
[root@server7 ~]# vim /etc/hosts
172.25.50.1  server1  reg.westos.org   添加仓库地址解析
添加ipvs模块
[root@server7 ~]# yum install ipvsadm -y    安装ipvs
[root@server7 ~]# lsmod | grep ip_vs    过滤ip_vs 已经存在
ip_vs                 145497  0  
[root@server7 ~]# swapoff -a  禁掉swap分区
[root@server7 ~]# vim /etc/fstab   禁掉swap分区
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
[root@server7 ~]# yum install -y kubeadm kublete  安装
[root@server7 ~]# systemctl enable --now kubelet  设置开机自起
[root@server7 ~]# kubeadm join 172.25.50.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:67a2a973878f0cc293e24f154512189bba0b479e85f8c677d700531f96771198   将server7添加为k8s node节点
[root@server2 ~]# kubectl get node  查看节点
NAME      STATUS   ROLES                  AGE     VERSION
server2   Ready    control-plane,master   3h15m   v1.23.6
server3   Ready    control-plane,master   135m    v1.23.6
server4   Ready    control-plane,master   127m    v1.23.5
server7   Ready    <none>                 75s     v1.23.6

测试:
[root@server2 ~]# kubectl run demo --image=nginx   运行一个容器
pod/demo created
[root@server2 ~]# kubectl get pod -o wide   
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE      NOMINATED NODE   READINESS GATES
demo   1/1     Running   0          30m   10.244.3.2   server7   <none>           <none>      调度在server7上
[root@server2 ~]# poweroff  将server2下线
[root@server3 docker]# kubectl get pod   在server3上查看pod,依然能查到
NAME   READY   STATUS    RESTARTS   AGE
demo   1/1     Running   0          94m
[root@server3 docker]# poweroff    将server3下线
[root@server4 ~]# kubectl get pod  查不到了,只有一个节点就不是高可用了
Unable to connect to the server: net/http: TLS handshake timeout
[root@foundation50 isos]# virsh start vm2  恢复server2,server2节点自动加入集群
Domain vm2 started 
[root@foundation50 isos]# virsh start vm3   恢复server3,server3节点自动加入集群
Domain vm3 started
[root@server3 ~]#  export KUBECONFIG=/etc/kubernetes/admin.conf
[root@server3 ~]# kubectl get node  查看节点,节点都已经自动加入集群
NAME      STATUS   ROLES                  AGE     VERSION
server2   Ready    control-plane,master   5h45m   v1.23.6
server3   Ready    control-plane,master   4h45m   v1.23.6
server4   Ready    control-plane,master   4h36m   v1.23.5
server7   Ready    <none>                 150m    v1.23.6
[root@server2 ~]# kubectl cluster-info  查看集群信息
Kubernetes control plane is running at https://172.25.50.100:6443   集群控制节点在https://172.25.50.100:6443 上
CoreDNS is running at https://172.25.50.100:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@server2 ~]# kubectl get pod   可以查看pod
NAME   READY   STATUS    RESTARTS   AGE
demo   1/1     Running   0          166m
[root@server2 ~]# kubectl delete pod demo   删除pod
pod "demo" deleted
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s(十四)—高可用集群部署 的相关文章

  • [云原生专题-22]:K8S - 集群编排工具K8S与SWARM比较与技术选择

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122750196 目录 前言 第1章
  • k8s部署gitlab最新版并初始化和登录

    前提条件是已经部署了k8s环境 采用k8s部署gitlab作为devops的测试环境 更加简洁和方便 1 准备工作 1 1 创建nfs共享目录 在nfs服务器创建共享目录 部署的gitlib使用共享目录来进行持久化 这样不管在哪个节点运行g
  • K8S 工作负载(一)

    K8S 工作负载 1 Pod Pod 是 Kubernetes 中创建 管理和调度的最小计算单元 用户可以在 K8S 中通过调用 Pod API生成一个 Pod 让 K8S 对其进行调度 Pod 是一组 一个或多个 容器 这些容器共享存储
  • k8s Trouble Shooting 故障排除

    本文要讲的是k8s的故障排除 比较浅 最近刚入门 主要涵盖的内容是查看k8s对象的当前运行时信息 对于服务 容器的问题是如何诊断的 对于某些复杂的问题例如pod调度问题是如何排查的 1 查看系统的Event事件 在对象资源 pod serv
  • 从Docker到Kubernetes——Kubernetes设计解读之Pod

    文章目录 Kubernetes是个什么样的项目 Kubernetes的设计解读 典型案例 GuestBook pod设计解读 pod使用实例 pod内容器网络与通信 Kubernetes是个什么样的项目 简单的说 k8s是一个管理跨主机容器
  • K8s-yaml的使用及命令

    YAML配置文件管理对象 对象管理 创建deployment资源 kubectl create f nginx deployment yaml 查看deployment kubectl get deploy 查看ReplicaSet kub
  • k8s英伟达GPU插件(nvidia-device-plugin)

    安装方法 Installation Guide NVIDIA Cloud Native Technologies documentation 1 本地节点添加 NVIDIA 驱动程序 要求 NVIDIA drivers 384 81 先确保
  • 十八. Kubernetes Ingress

    目录 一 Ingress 基础解释 二 ingressController 安装 六 ingress 使用示例 pathType 详细 annotations 基于k8s注解为 nginx 添加功能示例 路径重写 Session Affin
  • kubernetes08(kubernetes的资源对象)

    文章目录 kubernetes08 kubernetes的资源对象 一 引子 二 kubernetes资源 一 kubernetes的资源对象作用 二 kubernetes的资源对象分类 三 kubernetes资源清单 一 kubenet
  • k8s删除Terminating 的命名空间等资源

    背景 在k8s中执行删除命名空间后 命名空间没有被删除而是处于Terminating状态 此时再执行删除仍然删除不掉 解决 将要删除的命名空间信息导出为json数据 下面traefik v2 替换成你需要删除的命名空间名称 kubectl
  • docker下mysql镜像初始化

    目录 1 介绍 2 部署及验证 2 1 场景复现 2 2 创建dockerfile 2 3 初始化脚本 2 4 构建镜像并查看 2 5 创建容器并验证 2 6 完成 1 介绍 原理 当Mysql容器首次启动时 会在 docker entry
  • k8s之nginx-ingress做tcp或udp的4层网络负载

    检查nginx ingress是否开启tcp udp转发 test test02 ingress kubectl get pod n ingress nginx o yaml grep i configmap configmap POD N
  • IDEA远程调试

    1 概述 原理 本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信 传递调试指令和调试信息 被调试程序的远程虚拟机 作为 Debug 服务端 监听 Debug 调试指令 jdwp是Java Debug Wire
  • Kubernetes 集群部署 ------ 二进制部署(二)

    单节点 https blog csdn net Yplayer001 article details 104234807 先具备单master1节点部署环境 三 master02部署 优先关闭防火墙和selinux服务 在master01上
  • namespace命令空间

    目录 1 解决什么问题 2 基本介绍 2 1 定义 2 2 应用场景 3 使用案例 4 资源配额 5 标签 5 1 定义 5 2 pod资源打标签 5 3 查看标签 1 解决什么问题 命令空间类似于C 中的命名空间 当用户数量较多的集群 才
  • 十二. Kubernetes Pod 与 探针

    目录 一 Pod Pod 中的多容器协同 Pod 的组成与paush 重要 Pod 的生命周期 Pod状态与重启策略 静态Pod 二 探针 1 livenessProbe存活探针 2 readinessProbe就绪探针 3 startup
  • kubeadm 安装k8s

    关于k8s集群化部署 以下均是个人一步一步的完成部署 并且会罗列出在部署过程中遇到的各种问题及其解决方式 一 环境准备 环境准备阶段试用与master节点部署与work节点部署 即master和work节点全部都需要执行这些步骤 1 关闭防
  • k8s学习(五)ReplicaSet的使用

    ReplicaSet ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合 可确保指定数量的pod在任何设定的时间运行 因此 它通常用来保证给定数量的 完全相同的 Pod 的可用性 示例 1 nginx
  • 国内k8s集群部署的几种方式

    前言 总所周知 由于某种原因 通过官方的方式在国内是无法顺利部署k8s集群的 这里记录下在国内部署的几种方式 部署方式 目前我所了解有以下几种方式 使用kubeadmin通过离线镜像的方式 网上教程和镜像包挺多的 通过厂商集成的方式如 ra
  • 容器与集群——通过deployment 创建pod以及Java Web应用的容器化发布

    一 通过deployment 创建pod 1 1 编写yaml文件 1 2 安装pod 创建 kubectl create f dp nginx yaml 查看Deployment信息 1 3 查看相关信息 查看pod信息 kubecel

随机推荐

  • 【整理分享】30个让开发效率倍增的实用VSCode 插件

    本篇文章给大家总结分享30个让开发效率倍增的实用VSCode 插件 xff0c 让你的日常开发工作效率倍增 xff0c 希望对大家有所帮助 xff01 1 Image preview 通过此插件 xff0c 当鼠标悬浮在图片的链接上时 xf
  • 10个提高开发效率的Vue3常用插件(快来收藏)

    本篇文章给大家总结分享几个好用的 Vue 插件 xff0c 可以帮助开发者提高开发效率 解决移动端各种滚动场景需求 xff0c 希望对大家有所帮助 xff01 1 vue multiselect next Vue js 的通用选择 多选 标
  • 手把手带你使用Vue实现一个图片水平瀑布流插件

    如何使用Vue实现一个图片水平瀑布流插件 xff1f 这里给大家分享我在网上总结出来的一些知识 xff0c 希望对大家有所帮助 一 需求来源 今天碰到了一个需求 xff0c 需要在页面里 xff0c 用水平瀑布流的方式 xff0c 将一些图
  • vscode插件分享: 6个Vue3开发必备插件

    本篇文章给大家整理分享 6 个 Vue3 开发必备的 VSCode 插件 xff0c 可以直接用过 VSCode 的插件中心直接安装使用 xff0c 希望对大家有所帮助 xff01 1 Volar 下载数 153 万 43 相信使用 VSC
  • 11个裸VSCode必备插件,助你打造一个前端开发IDE

    VSCode 轻量 开源 xff0c 新鲜下载的 VSCode 可谓是身无长物 一穷二白 xff0c 连个项目管理的功能都没有 身轻如燕的 VSCode 对于后端开发说可能有点幼稚 xff0c 但对于前端来说刚刚好 xff0c 毕竟不需要搞
  • Ubuntu unzip 安装

    ubuntu unzip 安装以及命令参数说明 安装命令 xff1a sudo apt get install unzip 解压 zip文件命令 xff1a unzip unzip命令能够将被winzip压缩的文件解压 unzip命令的执行
  • 新建git仓库管理项目并更新代码提交git

    新建git仓库 第一步 xff1a 登录上自己的git后台 xff0c 在我的工作台的左下角 xff0c 点击仓库旁边的 43 号 xff0c 创建一个新的仓库 xff1a 第二步 xff1a 在新建仓库界面完善仓库的信息 xff0c 这里
  • CMake是什么?有什么用

    CMake CMake是一个跨平台的编译 Build 工具 可以用简单的语句来描述所有平台的编译过程 CMake能够输出各种各样的makefile或者project文件 xff0c 能测试编译器所支持的C 43 43 特性 类似UNIX下的
  • PX4系统学习

    PX4系统学习 扑翼飞行器的硬件组成飞控板电调电调的分类 舵机 扑翼飞行器的硬件组成 要了解学会二次开发首先要知道 xff0c 手头的飞行器的硬件结构 以及各个部分的结构是有何种作用的 xff0c 这样才能在根本上了解编程逻辑 xff0c
  • rostopic echo --noarr查看激光雷达数据详细信息(如frame_id)

    用rostopic echo 激光雷达话题名查看激光雷达返回的数据 xff0c 除了数字什么也显示不出来 想要查看激光雷达数据的frame id等信息 xff0c 加上 noarr参数即可 xff0c 排除话题数据中的数组信息 如图二所示
  • Django基本数据访问

    当需要操作数据时 xff0c 不再需要通过SQL语句 xff0c Django自动为这些模型提供了高级的Python API 接下来联系数据库表的操作 xff0c 运行manage py提供的shell语句 guest gt python3
  • SVO2.0 安装编译

    SVO2 OPEN https github com uzh rpg rpg svo pro open git挂梯子 https blog csdn net qq 33349365 article details 101514412 如果各
  • k8s(一)—pod管理、资源清单编写

    1 pod管理 k8s官方文档 root 64 server2 kubectl run nginx image 61 nginx 运行一个容器 xff0c 镜像为nginx pod nginx created root 64 server2
  • k8s(三)—控制器(replicaset、deployment、daemonset、job、cronjob)

    1 控制器简介 2 Replicaset控制器 root 64 server2 vim rs yaml apiVersion apps v1 kind ReplicaSet metadata name replicaset example
  • k8s(四)—service服务(暴露方式:ClusterIP、NodePort、LoadBalancer、ExternalName、ingress)

    1 service简介 2 开启kube proxy的ipvs root 64 server2 kubectl n kube system get pod grep proxy 每个节点都有haproxy kube proxy d6cp2
  • k8s(五)—容器间的网络通信

    1 同一节点不同pod之间的通信原理 root 64 server2 kubectl get pod o wide 查看pod 的ip NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NOD
  • k8s(七)—statefullset部署mysql主从集群

    1 使用statefullset部署mysql主从集群 mysql 0是master mysql 1和mysql 2是两个备份 当mysql写的时候 xff0c 找headless service中的mysql 0 mysql xff1b
  • k8s(十)— 资源限制(cpu、memory)

    1 k8s容器资源限制简介 2 k8s容器资源限制实施 2 1 内存限制示例 root 64 server1 docker search stress 搜索测试镜像stress NAME DESCRIPTION STARS OFFICIAL
  • k8s(十二)— HPA

    HPA官网 从最基本的角度来看 xff0c Pod 水平自动扩缩控制器根据当前指标和期望指标来计算扩缩比例 期望副本数 61 ceil 当前副本数 当前指标 期望指标 例如 xff0c 如果当前指标值为 200m xff0c 而期望值为 1
  • k8s(十四)—高可用集群部署

    1 部署k8s高可用原理图 2 清理环境 root 64 server2 helm kubectl drain server4 下线server4 root 64 server2 helm kubectl delete nodes serv