千家信息网

Kubernetes集群多Master容错配置技巧有哪些

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下Kubernetes集群多Master容错配置技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1
千家信息网最后更新 2026年10月31日Kubernetes集群多Master容错配置技巧有哪些

小编给大家分享一下Kubernetes集群多Master容错配置技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、kube-apiserver

修改两处:

  • 修改其主服务地址,指向与主节点一致的虚拟IP(设置参考《Keepalived快速使用(Ubuntu18.04)》)。

  • 修改etcd服务的地址和证书文件目录。

开始编辑:

sudo nano /etc/kubernetes/manifests/kube-apiserver.yaml

最后的kube-apiserver.yaml文件如下:

# /etc/kubernetes/manifests/kube-apiserver.yamlapiVersion: v1kind: Podmetadata:  annotations:    scheduler.alpha.kubernetes.io/critical-pod: ""  creationTimestamp: null  labels:    component: kube-apiserver    tier: control-plane  name: kube-apiserver  namespace: kube-systemspec:  containers:  - command:    - kube-apiserver    - --authorization-mode=Node,RBAC    - --advertise-address=10.1.1.199    - --allow-privileged=true    - --client-ca-file=/etc/kubernetes/pki/ca.crt    - --enable-admission-plugins=NodeRestriction    - --enable-bootstrap-token-auth=true#    - --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt#    - --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt#    - --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key#    - --etcd-servers=https://127.0.0.1:2379    - --etcd-cafile=/etc/kubernetes/pki/etcd-certs/ca.pem    - --etcd-certfile=/etc/kubernetes/pki/etcd-certs/client.pem    - --etcd-keyfile=/etc/kubernetes/pki/etcd-certs/client-key.pem    - --etcd-servers=https://10.1.1.201:2379    - --insecure-port=0    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname    - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt    - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key    - --requestheader-allowed-names=front-proxy-client    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt    - --requestheader-extra-headers-prefix=X-Remote-Extra-    - --requestheader-group-headers=X-Remote-Group    - --requestheader-username-headers=X-Remote-User    - --secure-port=6443    - --service-account-key-file=/etc/kubernetes/pki/sa.pub    - --service-cluster-ip-range=10.96.0.0/12    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key    image: k8s.gcr.io/kube-apiserver:v1.13.1    imagePullPolicy: IfNotPresent    livenessProbe:      failureThreshold: 8      httpGet:        host: 10.1.1.199        path: /healthz        port: 6443        scheme: HTTPS      initialDelaySeconds: 15      timeoutSeconds: 15    name: kube-apiserver    resources:      requests:        cpu: 250m    volumeMounts:    - mountPath: /etc/ssl/certs      name: ca-certs      readOnly: true    - mountPath: /etc/ca-certificates      name: etc-ca-certificates      readOnly: true    - mountPath: /etc/pki      name: etc-pki      readOnly: true    - mountPath: /etc/kubernetes/pki      name: k8s-certs      readOnly: true    - mountPath: /usr/local/share/ca-certificates      name: usr-local-share-ca-certificates      readOnly: true    - mountPath: /usr/share/ca-certificates      name: usr-share-ca-certificates      readOnly: true  hostNetwork: true  priorityClassName: system-cluster-critical  volumes:  - hostPath:      path: /etc/ssl/certs      type: DirectoryOrCreate    name: ca-certs  - hostPath:      path: /etc/ca-certificates      type: DirectoryOrCreate    name: etc-ca-certificates  - hostPath:      path: /etc/pki      type: DirectoryOrCreate    name: etc-pki  - hostPath:      path: /etc/kubernetes/pki      type: DirectoryOrCreate    name: k8s-certs  - hostPath:      path: /usr/local/share/ca-certificates      type: DirectoryOrCreate    name: usr-local-share-ca-certificates  - hostPath:      path: /usr/share/ca-certificates      type: DirectoryOrCreate    name: usr-share-ca-certificatesstatus: {}

注意

  • 这里主要修改了--advertise-address=10.1.1.199和--etcd-servers=https://10.1.1.201:2379。

  • 二者的IP地址不一样,199为虚拟IP,201为当前节点的etcd服务地址。

2、kube-control-manager、kube-schedule

kube-control-manager和kube-schedule实例通过访问apiserver服务接口来获取集群状态和执行集群内部管理、维护工作,支持多运行实例的并发访问,对apiserver加锁来选择主控制器。

  • kube-control-manager主要负责节点状态的一致性保障,包括/etc/kubernetes/manifests/kube-control-manager.yaml和etc/kubernetes/control-manager.conf两个文件。

  • kube-schedule主要负责pod实例的调度,包括/etc/kubernetes/manifests/kube-schedule.yaml和etc/kubernetes/schedule.conf两个文件。

Kubeadm的默认安装,已经将kube-control-manager和kube-schedule的elect设置为true,支持多实例运行,只需要将其复制到副节点的/etc/kubernetes就可以了。

具体操作如下:

# 复制control-manager和schedule的配置文件到本地。# 参考 https://my.oschina.net/u/2306127/blog/write/2991361# 首先登录到远程节点,然后再执行下面的命令。echo "Clone control-manager configuration file."scp root@10.1.1.201:/etc/kubernetes/control-manager.conf /etc/kubernetes/scp root@10.1.1.201:/etc/kubernetes/manifests/kube-control-manager.yaml /etc/kubernetes/manifests/echo "Clone schedule configuration file."scp root@10.1.1.201:/etc/kubernetes/schedule.conf /etc/kubernetes/scp root@10.1.1.201:/etc/kubernetes/manifests/kube-schedule.yaml /etc/kubernetes/manifests/

重启kubelet,将自动重启control-manager和schedule实例。

3、admin.conf

在主节点挂掉后,需要在副节点上使用kubectl。首先将admin.conf复制到副节点上,然后将其配置到本地账户。

具体操作如下:

# 复制admin.confscp root@10.1.1.201:/etc/kubernetes/admin.conf /etc/kubernetes/# 创建本地账户访问目录,用户配置文件mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

admin.conf的主IP地址通过虚拟IP访问,不需要进行任何修改。

4、kubectl操作

现在,之前的副节点已经可以执行Master上面的所有操作了(所有节点都可以执行)。试一下:

# Kubernetes版本。kubectl version# 集群信息,服务地址。kubectl cluster-info# 集群节点列表。kubectl get node -o wide# 集群运行的所有pod信息。kubectl get pod --all-namespaces -o wide

检查一下,新升级的副节点和主节点的输出信息是否一致。如果不一致:

  • 检查etcd集群的一致性(详情参考《Kubernetes 1.13.1的etcd集群扩容实战技巧》)。

  • kube-control-manager、kube-schedule的容器实例是否运行正常,参数配置是否正确。

以上是"Kubernetes集群多Master容错配置技巧有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

节点 集群 配置 地址 实例 文件 一致 服务 参考 运行 技巧 信息 篇文章 容错 一致性 两个 内容 状态 目录 账户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技产业 互联网科技卖菜 迪茉互联网科技 融势互联网科技 郑州华宇互联网科技 互联网科技宣传片 无锡溥仪互联网科技有限公司 科技大学互联网专业好不好 中国的互联网科技企业的崛起 央行互联网金融科技公司 阿大互联网科技有限公司 广西互联网科技孵化中心 健康食品互联网创新科技园项目 特约风豹互联网科技为什么扣费 互联网科技公司营业执照怎么办理 深圳互联网科技的发展 北京军民互联网科技公司 第三届互联网大会安防黑科技 盐城市攀科互联网科技有限公司 互联网科技大会大佬 广州紫鲸互联网科技有限公司 互联网科技与金融科技 深圳期待互联网科技 上海卓越科技 互联网 科技类的互联网平台 互联网新科技动漫ppt素材 工业互联网科技成果转化 广州有谷有贝互联网科技有限公司 珠海东科互联网科技有限公司 互联网科技新闻
0