基于青云LB搭建高可用的k8s集群。

简介: 本文是青云LB(负载均衡)与k8s实战(一)的详细篇,是在青云上,利用青云LB搭建高可用的k8s集群的过程中遇到的各种问题的梳理和总结。

一、前言


在企业生产环境,k8s高可用是一个必不可少的特性,其中最通用的场景就是如何在k8s 集群宕机一个节点的情况下保障服务依旧可用。部署高可用k8s集群对于企业级云平台来说是一个根本性的原则,容错、服务可用和数据安全是高可用基础设施的关键。本文是在青云上利用青云LB搭建k8s高可用集群的过程中遇到的各种问题的梳理和总结。


二、集群架构



三、基础环境搭建


在生产环境中,k8s的基础环境搭建是必不可少的步骤,若是基础环境搭建的不好,后期可能会存在各种各样的隐患,所以基础环境搭建尤为重要。

3.1 主机清单


宿主机系统
k8s集群角色
服务器
主机名
容器
Centos7.6
控制节点
192.168.0.1
ks-m1
docker
Centos7.6 控制节点 192.168.0.2 ks-m2 docker
Centos7.6 控制节点 192.168.0.3 ks-m3 docker
Centos7.6 工作节点 192.168.0.4 ks-n1 docker
Centos7.6 工作节点 192.168.0.5 ks-n2 docker

版本说明

  • docker:  20.10.8
  • kubeadm version: 1.22.12
  • kubectl version: 1.22.12
  • kubelet version: 1.22.12

3.2 配置主机名

#在192.168.0.1上执行如下:
$ hostnamectl set-hostname ks-m1 && bash
#在192.168.0.2上执行如下:
$ hostnamectl set-hostname ks-m2 && bash
#在192.168.0.3上执行如下:
$ hostnamectl set-hostname ks-m3 && bash
#在192.168.0.4上执行如下:
$ hostnamectl set-hostname ks-n1 && bash
#在192.168.0.5上执行如下:
$ hostnamectl set-hostname ks-n2 && bash

3.3 配置hosts文件

#修改ks-m1、ks-m2、 ks-m3、ks-n1、ks-n1机器的/etc/hosts文件,增加如下四行:
192.168.0.1 ks-m1
192.168.0.2 ks-m2
192.168.0.3 ks-m3
192.168.0.4 ks-n1
192.168.0.5 ks-n2
cat >> /etc/hosts << EOF
192.168.0.1 ks-m1
192.168.0.2 ks-m2
192.168.0.3 ks-m3
192.168.0.4 ks-n1
192.168.0.5 ks-n2
EOF

3.4 关闭防火墙、selinux、关闭交换分区

##关闭防火墙
$ systemctl stop firewalld
##禁止防火墙开机启动
$ systemctl disable firewalld
##永久关闭selinux 注:重启机器后,selinux配置才能永久生效
$ sed -i 's/enforcing/disabled/' /etc/selinux/config
##临时关闭selinux   执行getenforce   显示Disabled说明selinux已经关闭
$ setenforce 0
##永久关闭交换分区swap 注:重启机器后,才能永久生效
$ sed -ri 's/.*swap.*/#&/' /etc/fstab
##临时关闭交换分区swap
$ swapoff -a

注意:每台机器都要执行

3.5 升级系统内核

在升级内核十分重要,低版本的内核下k8s集群不稳定,且对插件的兼容性不好,例如3.10版本的内核不支持网络插件Calico3.23版本等。

 共有两种开机引导模式:biosuefi,其中uefi引导模式下需要关闭安全引导,否则无法正常开机。

1)导入public key

$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2)安装epel源

$ yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y

3)查看可用版本内核

$ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

4)选择安装lt最新版本

$ yum --enablerepo=elrepo-kernel install kernel-lt -y

关于内核种类:

kernel-ml中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。(推荐)

5)查看系统上可以用的内核

bios模式下:

$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

uefi模式下:

$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg

注:前面的0 1 2代表编号。

6)设置内核启动顺序

$ grub2-set-default 0

7)重新创建内核配置

bios模式下:

$ grub2-mkconfig -o /boot/grub2/grub.cfg

uefi模式下:

$ grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

8)重启验证

$ reboot
$ uname -r

注:内核升级完成后需要重启主机,然后使用uname -r查看内核版本是否升级成功。

3.6 修改内核参数

在内核版本升级后再操作。

##加载br_netfilter模块
modprobe br_netfilter
#验证模块是否加载成功
lsmod | grep br_netfilter
##修改内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
$ vm.swappiness = 0    # 禁止使用swap空间,只有当系统OOM时才允许使用它
##生效
$ sysctl --system   或 sysctl -p /etc/sysctl.d/k8s.conf
  • net.bridge.bridge-nf-call-iptables:开启桥设备内核监控(ipv4)
  • net.ipv4.ip_forward:开启路由转发
  • net.bridge.bridge-nf-call-ip6tables:开启桥设备内核监控(ipv6)

以上3项为必须参数,其他参数可根据需要添加。

3.7配置yum源(采用阿里云repo源)

##下载常用的软件
$ yum clean all && yum makecache  && yum repolist
$ yum install -y vim net-tools  bash-completion wget lrzsz     
##配置国内阿里云docker的repo源
$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.8配置安装k8s组件需要的阿里云的repo源

cat <<EOF > /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.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.9配置时间同步

##安装ntpdate命令
$ yum install ntpdate -y
##跟网络源做同步
$ ntpdate cn.pool.ntp.org
##把时间同步做成计划任务
$ crontab -e
##填入一下内容
$ * */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org
##重启crond服务
$ service crond restart
或者利用chronyd
##安装chronyd
$ yum install -y chronyd
##启动chronyd及加入开机自启
$ systemctl start chronyd && systemctl enable chronyd 
#修改/etc/chrony.conf配置文件,同步服务器地址为阿里云,增加一行(server ntp1.aliyun.com iburst,其余服务地址注释了)
$ server ntp1.aliyun.com iburst


3.10配置IPVS

$ yum install  -y ipvsadm ipset sysstat conntrack libseccomp  
$ cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip "
for kernel_module in \${ipvs_modules}; do
  /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    /sbin/modprobe \${kernel_module}
  fi
done
EOF  
$ chmod 755 /etc/sysconfig/modules/ipvs.modules 
$ sh /etc/sysconfig/modules/ipvs.modules 
$ lsmod | grep ip_vs

dummy0网卡和kube-ipvs0网卡:在安装k8s集群时,启用了ipvs的话,就会有这两个网卡。(将service的IP绑定在kube-ipvs0网卡上)

3.11 安装Docker并配置Docker

#安装docker
$ yum install docker-ce docker-ce-cli containerd.io -y  或指定版本  yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io  -y
#启动docker并设置开机自启
$ systemctl start docker && systemctl enable docker.service && systemctl status docker

新增Dokcer配置文件

$ cat > /etc/sysconfig/modules/ipvs.modules <<EOF
{
"data-root":"/data/docker/lib",
"log-driver": "json-file",
"registry-mirrors": ["https://***.mirror.aliyuncs.com"],
"bip": "10.128.10.1/24",
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries":["harbor的ip+port"]
}
EOF

参数说明:

修改docker文件驱动为systemd,默认为cgroupfs,kubelet默认使用systemd,两者必须一致才可以。data-root是修改默认存储路径,注意调整harbor的地址。

3.12下载并安装kubeadm、kubectl、kubelet

$ yum install -y kubelet-1.22.12 kubeadm-1.22.12 kubectl-1.22.12
$ systemctl enable kubelet && systemctl start kubelet && systemctl status kubelet
#上面可以看到kubelet状态不是running状态,这个是正常的,不用管,等k8s组件起来这个kubelet就正常了。
##注:每个软件包的作用
Kubeadm:  kubeadm是一个工具,用来初始化k8s集群的
kubelet:   安装在集群所有节点上,用于启动Pod的
kubectl:   通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件

3.13设置Table键补全

让命令可用自动table键进行补全,对新手无法记住命令提供很好的支持,所在主机进行该操作方可使用table补全。

  • Kubectl命令补全:
$ kubectl completion  bash >  /etc/bash_completion.d/kubelet
  • Kubeadm命令补全:
$ kubeadm  completion  bash >  /etc/bash_completion.d/kubeadm


四、青云LB负载均衡使用


负载均衡(Load Balancer,简称LB)提供安全快捷的流量分发服务,来自多个公网地址的访问流量经由 LB 可以自动分配到多台云服务器上,并支持自动检测并隔离故障云服务器,提供业务系统的服务能力和可用性。负载均衡支持千万级别并发访问请求,可轻松应对大流量访问,满足业务需求。

  • 创建负载均衡器,指定ip地址或者自动生成IP
  • 进入负载均衡器,创建监听器
  • 选择TCP,6443端口(此端口可调整)
  • 添加master地址与监听 apiserver  6443端口
  • 根据集群的部署位置,您可能需要在安全组中打开端口以确保外部流量不被屏蔽
  • 可以同时配置内置负载均衡器和外置负载均衡器。为外置负载均衡器分配公共 IP 地址后,您可以使用该 IP 地址来访问集群,这里我们只用内置负载均衡器,利用青云VPN进行内网访问即可

 4.1 部署k8s之前就是不可用状态,如下图所示:





五、初始化master节点

5.1 检测安装环境

检测主机环境是否达到集群的要求,可根据结果提示进行逐一排除故障

$ kubeadm init --dry-run

5.2 镜像下载/导入

1)列出需要使用的镜像列表

$ kubeadm config images list

2)拉取镜像

$ kubeadm config images pull  \
--image-repository  registry.aliyuncs.com/google_containers \
--kubernetes-version  v1.22.12

--image-repository: 从哪个地方下载镜像(默认"k8s.gcr.io",但k8s.gcr.io国内无法访问);

--kubernetes-version: 指定kubernetes集群的镜像版本;

5.3 创建配置文件

创建默认的配置文件

$ kubeadm config print init-defaults > kubeadm-init.yaml

修改配置文件

$ cat 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: 192.168.0.1   #本机ks-m1的ip
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  imagePullPolicy: IfNotPresent
  name: ks-m1
  taints: 
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
  certSANs:
  - "172.17.0.252"
  extraArgs:
    authorization-mode: "Node,RBAC"
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
controlPlaneEndpoint: 172.17.0.252:6443  #此ip和端口是青云负载均衡器生成的内部负载ip+端口
clusterName: kubernetes
cgroupDriver: systemd
controllerManager: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.22.12
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.10.0.0/16
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs

5.4 初始化

$ kubeadm init --config kubeadm-init.yaml   --upload-certs
##upload-certs 标志用来将在所有控制平面实例之间的共享证书上传到集群,若是不加会报错.

报错如下:


显示如下说明安装成功:

注:该token 有效期为24小时。参数  --control-plane 就是加入控制节点,不带该参数就是加入工作节点

5.5 环境配置

根据初始化成功后的提示对集群进行基础的配置。

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ export KUBECONFIG=/etc/kubernetes/admin.conf
$ echo "KUBECONFIG=/etc/kubernetes/admin.conf" >>  ~/.bashrc && source  ~/.bashrc
$ kubectl get nodes
NAME              STATUS     ROLES                  AGE    VERSION
ks-m1   NotReady   control-plane,master   3m3s   v1.22.12

5.6集群重置(可选)

初始化master有问题,可将集群重置,再次初始化master

$ kubeadm reset


六、扩展master节点


6.1拷贝配置文件

把ks-m1节点的证书拷贝到ks-m2、ks-m3节点上

在ks-m2、ks-m3节点上创建证书存放目录:
$ cd /root && mkdir -p /etc/kubernetes/pki/etcd &&mkdir -p ~/.kube/
##把ks-m1节点的证书拷贝到ks-m2上:
$ scp /etc/kubernetes/pki/ca.crt ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/ca.key ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/sa.key ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/sa.pub ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/front-proxy-ca.crt ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/front-proxy-ca.key ks-m2:/etc/kubernetes/pki/
$ scp /etc/kubernetes/pki/etcd/ca.crt ks-m2:/etc/kubernetes/pki/etcd/
$ scp /etc/kubernetes/pki/etcd/ca.key ks-m2:/etc/kubernetes/pki/etcd/
##ks-m3同上

6.2扩展master节点

#kubeadm join *****:6443 --token pa6691.w9a5ucih8p4e8y2g     --discovery-token-ca-cert-hash sha256:cac5dc7e6c559e129bed3aeff757e3ba6da35c4b2734c4833d978c4c1859d5d8  --control-plane

注:若忘记token,通过kubeadm token create --print-join-command可以生成新的token。

6.3 master都加入集群后,查看负载均衡器状态


七、扩展node节点


扩展node节点比较简单,通过以下命令即可:

$ kubeadm join *****:6443 --token pa6691.w9a5ucih8p4e8y2g     --discovery-token-ca-cert-hash sha256:cac5dc7e6c559e129bed3aeff757e3ba6da35c4b2734c4833d978c4c1859d5d8  


查看集群状态:

$ kubectl get nodes

通过查看集群状态可以看到,状态为NotReady,是因为还未安装网络插件,安装网络插件后就正常了,且node的点的角色为空,<none>就表示这个节点是工作节点。  按照如下方法,可以把ks-n1的ROLES变成work

$ kubectl label node ks-n1 node-role.kubernetes.io/worker=worker


八、安装插件

8.1 下载Calico网络插件文件

载地

$ curl https://projectcalico.docs.tigera.io/archive/v3.22/manifests/calico.yaml -O
##或者
$ wget https://docs.projectcalico.org/v3.22/manifests/calico.yaml --no-check-certificat

 调整calico.yaml如下

#新增两行配置  直接配置通配符 :value: "interface=eth.*"
- name: IP_AUTODETECTION_METHOD
  value: "interface=eth.*"

注意:在安装calico网络时,默认安装是IPIP网络。calico.yaml文件中,将CALICO_IPV4POOL_IPIP的值修改成 "off",就能够替换成BGP网络。eth.*是根据自己机器的网络来调整的。这样可以避很多calico网络错误。如下:


8.2 提前下载Calico镜像

$ grep image calico.yaml

##预先下载calico相关的镜像
$ docker pull calico/kube-controllers:v3.22.4
$ docker pull calico/cni:v3.22.4
$ docker pull calico/pod2daemon-flexvol:v3.22.4
$ docker pull calico/node:v3.22.4

8.3 安装Calico网络插件

##在其中一个master节点执行即可
$ kubectl apply -f calico.yaml

如下:

查看node节点和pod状态:

$ kubectl get nodes
$ kubectl get pods -n kube-system

8.4 安装CoreDNS域名解析插件

kubeadm安装的k8s集群中,安装Calico网络插件后会自动安装CoreDNS插件。

8.5 安装Metrics数据采集插件

metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 kubectl,hpa,scheduler 等!

1)下载yaml文件

##下载最新版本的yaml文件
$ https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
##指定下载v0.4.1版本
$ https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

2)修改yaml文件

$ mv components.yaml metrics-server.yaml
$ vim metrics-server.yaml
...
containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls   #跳过验证SSL证书

注:将镜像k8s.gcr.io/metrics-server/metrics-server:v0.6.1替换为registry.aliyuncs.com/google_containers/metrics-server:v0.6.1

3)提前下载镜像

$ grep image: metrics-server.yaml   #查看需要的镜像
   image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.1
$ docker  pull registry.aliyuncs.com/google_containers/metrics-server:v0.6.1

4)调整apiserver的配置

需要在kube-apiserver的配置文件中添加–enable-aggregator-routing=true参数来启用聚合认证

##增加如下内容:
- --enable-aggregator-routing=true

5)更新apiserver的配置

$ kubectl apply -f  /etc/kubernetes/manifests/kube-apiserver.yaml
pod/kube-apiserver created
$ kubectl get pods -n kube-system

注:把CrashLoopBackOff状态的pod删除,删除后k8s会重新创建。

$ kubectl delete pods kube-apiserver -n kube-system
pod "kube-apiserver" deleted

6)安装metrics-server

$ kubectl apply -f metrics-server-0.6.1.yaml 
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
## 查看pod状态
$ kubectl get pods -n kube-system

7)查看节点资源

$ kubectl top nodes
NAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
ks-m1   252m         6%     1787Mi          11%       
ks-m2   422m         10%    1604Mi          10%       
ks-m3   890m         11%    16004Mi         66%       
ks-n1   272m         1%     27226Mi         45%       
ks-n2   450m         2%     23817Mi         74%


九、集群验证

通过以下命令进行集群验证:


kubectl get nodes
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
运维 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【4月更文挑战第26天】 在动态且不断增长的云计算环境中,维护高性能的 Kubernetes 集群是一个挑战。本文将探讨一系列实用的策略和工具,旨在帮助运维专家监控、分析和优化 Kubernetes 集群的性能。我们将讨论资源分配的最佳实践,包括 CPU 和内存管理,以及集群规模调整的策略。此外,文中还将介绍延迟和吞吐量的重要性,并提供日志和监控工具的使用技巧,以实现持续改进的目标。
|
7天前
|
存储 运维 Kubernetes
Kubernetes 集群的监控与维护策略
【4月更文挑战第23天】 在微服务架构日益盛行的当下,容器编排工具如 Kubernetes 成为了运维工作的重要环节。然而,随着集群规模的增长和复杂性的提升,如何确保 Kubernetes 集群的高效稳定运行成为了一大挑战。本文将深入探讨 Kubernetes 集群的监控要点、常见问题及解决方案,并提出一系列切实可行的维护策略,旨在帮助运维人员有效管理和维护 Kubernetes 环境,保障服务的持续可用性和性能优化。
|
8天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
|
18天前
|
运维 Kubernetes 监控
Kubernetes 集群的监控与维护策略
【4月更文挑战第12天】在微服务架构日益普及的当下,Kubernetes 作为容器编排的事实标准,承载着运行和管理大量服务的重要职责。本文将深入探讨 Kubernetes 集群的监控要点,并提出一系列切实可行的维护策略,旨在帮助运维人员确保集群的稳定性和性能优化。
|
21天前
|
Kubernetes 搜索推荐 网络协议
使用 kubeadm 部署 Kubernetes 集群(三)kubeadm 初始化 k8s 证书过期解决方案
使用 kubeadm 部署 Kubernetes 集群(三)kubeadm 初始化 k8s 证书过期解决方案
36 8
|
1天前
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
|
1天前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
|
2天前
|
Kubernetes 网络协议 Python
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
|
2天前
|
Kubernetes 应用服务中间件 开发工具
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
|
6天前
|
Kubernetes 应用服务中间件 nginx
【博客大赛】搭建一套完整的企业级Kubernetes高可用集群(v1.20,二进制)
【博客大赛】搭建一套完整的企业级Kubernetes高可用集群(v1.20,二进制)

推荐镜像

更多