kubernetes高可用集群版如何安装
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章将为大家详细讲解有关kubernetes高可用集群版如何安装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前置条件系统要求:64位centos7.6关闭防火
千家信息网最后更新 2025年12月04日kubernetes高可用集群版如何安装
这篇文章将为大家详细讲解有关kubernetes高可用集群版如何安装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
前置条件
系统要求:64位centos7.6
关闭防火墙和selinux
关闭操作系统swap分区(使用k8s不推荐打开)
请预配置好每个节点的hostname保证不重名即可
请配置第一个master能秘钥免密登入所有节点(包括自身)
环境说明
本手册安装方式适用于小规模使用
多主模式(最少三个), 每个master节点上需要安装keepalived
准备工作(每个节点都需要执行)
Docker和kubernetes软件源配置
# 切换到配置目录cd /etc/yum.repos.d/# 配置docker-ce阿里源wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 配置kubernetes阿里源cat </etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
配置内核相关参数
cat </etc/sysctl.d/ceph.confnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system
安装相应软件包
# 安装kubeadm kubelet kubectlyum install kubeadm kubectl kubelet -y# 开机启动kubelet和dockersystemctl enable docker kubelet# 启动dockersystemctl start docker
部署
安装keepalived(在所有master上执行)
# 此处如果有Lb可省略 直接使用LB地址# 安装时候请先在初始化master上执行,保证VIP附着在初始化master上,否则请关闭其他keepalived# 安装完成后可根据自己业务需要实现健康监测yum install keepalived -y# 备份keepalived原始文件mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak# 生成新的keepalived配置文件,文中注释部分对每台master请进行修改cat </etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id k8s-master1 #主调度器的主机名 vrrp_mcast_group4 224.26.1.1 }vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 66 nopreempt priority 90 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 10.20.1.8 #VIP地址声明 }}EOF# 配置keepalived开机启动和启动keepalivedsystemctl enable keepalivedsystemctl start keepalived
生成kubeadm master 配置文件
cd && cat <kubeadm.yamlapiVersion: kubeadm.k8s.io/v1beta1kind: ClusterConfigurationkubernetesVersion: stableapiServer: certSANs: - "172.29.2.188" #请求改为你的vip地址controlPlaneEndpoint: "172.29.2.188:6443" #请求改为你的vip地址imageRepository: registry.cn-hangzhou.aliyuncs.com/peter1009networking: dnsDomain: cluster.local podSubnet: "10.244.0.0/16" serviceSubnet: 10.96.0.0/12EOF
初始化第一个master
# 使用上一步生成的kubeadm.yamlkubeadm init --config kubeadm.yaml
# 执行完上一步输出如下root@k8s4:~# kubeadm init --config kubeadm.yamlI0522 06:20:13.352644 2622 version.go:96] could not fetch a Kubernetes version from ......... 此处省略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/configYou 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 authoritiesand service account keys on each node and then running the following as root: kubeadm join 172.16.10.114:6443 --token v2lv3k.aysjlmg3ylcl3498 \ --discovery-token-ca-cert-hash sha256:87b69e590e9d59055c5a9c6651e333044c402dba877beb29906eddfeb0998d72 \ --experimental-control-planeThen you can join any number of worker nodes by running the following on each as root:kubeadm join 172.16.10.114:6443 --token v2lv3k.aysjlmg3ylcl3498 \ --discovery-token-ca-cert-hash sha256:87b69e590e9d59055c5a9c6651e333044c402dba877beb29906eddfeb0998d72
安装集群
cat <copy.shCONTROL_PLANE_IPS="172.16.10.101 172.16.10.102" # 修改这两个ip地址为你第二/第三masterip地址for host in ${CONTROL_PLANE_IPS}; do ssh $host mkdir -p /etc/kubernetes/pki/etcd scp /etc/kubernetes/pki/ca.crt "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/ca.key "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/sa.key "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/sa.pub "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/front-proxy-ca.crt "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/front-proxy-ca.key "${USER}"@$host:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/etcd/ca.crt "${USER}"@$host:/etc/kubernetes/pki/etcd/ca.crt scp /etc/kubernetes/pki/etcd/ca.key "${USER}"@$host:/etc/kubernetes/pki/etcd/ca.key scp /etc/kubernetes/admin.conf "${USER}"@$host:/etc/kubernetes/doneEOF# 如果未配置免密登录,该步骤讲失败bash -x copy.sh
# 在当前节点执行提示内容,使kubectl能访问集群 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config# 在其他master节点上配置执行提示内容(必须要copy.sh文件执行成功以后)kubeadm join 172.16.10.114:6443 --token v2lv3k.aysjlmg3ylcl3498 \ --discovery-token-ca-cert-hash sha256:87b69e590e9d59055c5a9c6651e333044c402dba877beb29906eddfeb0998d72 \ --experimental-control-plane
# 在其他非master的节点上配置执行提示内容kubeadm join 172.16.10.114:6443 --token v2lv3k.aysjlmg3ylcl3498 \ --discovery-token-ca-cert-hash sha256:87b69e590e9d59055c5a9c6651e333044c402dba877beb29906eddfeb0998d72
安装flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
检查是否安装完成
root@k8s4:~# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s4 Ready master 20m v1.14.2root@k8s4:~# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s4 Ready master 20m v1.14.2root@k8s4:~# kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system coredns-8cc96f57d-cfr4j 1/1 Running 0 20mkube-system coredns-8cc96f57d-stcz6 1/1 Running 0 20mkube-system etcd-k8s4 1/1 Running 0 19mkube-system kube-apiserver-k8s4 1/1 Running 0 19mkube-system kube-controller-manager-k8s4 1/1 Running 0 19mkube-system kube-flannel-ds-amd64-k4q6q 1/1 Running 0 50skube-system kube-proxy-lhjsf 1/1 Running 0 20mkube-system kube-scheduler-k8s4 1/1 Running 0 19m
测试是否能正常使用集群
# 取消节点污点,使master能被正常调度, k8s4请更改为你自有集群的nodenamekubectl taint node k8s4 node-role.kubernetes.io/master:NoSchedule-# 创建nginx deployroot@k8s4:~# kubectl create deploy nginx --image nginxdeployment.apps/nginx createdroot@k8s4:~# kubectl get podsNAME READY STATUS RESTARTS AGEnginx-65f88748fd-9sk6z 1/1 Running 0 2m44s# 暴露nginx到集群外root@k8s4:~# kubectl expose deploy nginx --port=80 --type=NodePortservice/nginx exposedroot@k8s4:~# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1443/TCP 25mnginx NodePort 10.104.109.234 80:32129/TCP 5sroot@k8s4:~# curl 127.0.0.1:32129 Welcome to nginx! Welcome to nginx!
If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.
For online documentation and support please refer tonginx.org.
Commercial support is available atnginx.com.Thank you for using nginx.
关于"kubernetes高可用集群版如何安装"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
配置
节点
集群
地址
内容
文件
篇文章
提示
生成
更多
系统
软件
阿里
上一
保证
调度
不错
原始
实用
操作系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小学生网络安全教育进社区
教育网络安全的建议
曙光服务器a840告警灯红色
数据库系统系统讲的是什么
数据库管理数据实时更新
哪培训机构学软件开发比较好
中电太极十五所软件开发薪资
entity 数据库连接
服务器散热扣具和普通的一样吗
深圳云岭网络技术有限公司
java进入服务器目录
安徽北斗时间同步服务器
小游戏服务器id
数据库安全的第一到保障
安徽时也网络技术公司
软件开发等级考试
r720服务器改台式
气象局网络安全自查报告
k8s重启节点服务器
不连接数据库如何答题
曙光服务器a840告警灯红色
dnf别的服务器可以邮寄吗
sql数据库不能用ip怎么办
服务器证书未通过验证
天下互联网科技有限公司
医院信息管理数据库企划书
关于网络安全宣传总结报告
数据库的五种字段属性
哪些公司会用服务器
r390适配的服务器