iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >kubernetes中如何使用 kubeadm 创建高可用集群
  • 337
分享到

kubernetes中如何使用 kubeadm 创建高可用集群

2023-06-19 09:06:01 337人浏览 安东尼
摘要

本篇文章为大家展示了kubernetes中如何使用 kubeadm 创建高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一. 环境和版本信息OS:  Cento

本篇文章为大家展示了kubernetes中如何使用 kubeadm 创建高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一. 环境和版本信息


OS:  Centos 7.6.1810HAProxy Vervion:  1.5.18Docker Version:  Docker-CE 18.09.1Kubetnetes Version:  v1.15.1HAProxy:  192.168.199.200Control-plane node(master node):node-01:  192.168.199.201    node-02:  192.168.199.202    node-03:  192.168.199.203Worker Node:node-04:  192.168.199.204    node-05:  192.168.199.205    node-06:  192.168.199.206

二. 系统配置:


    1. 关闭防火墙
sudo systemctl stop firewalldsudo systemctl disable firewalld
   2. 关闭selinux
setenforce 0sed -i 's/^SElinux=enforcing$/SELINUX=disabled/' /etc/selinux/config
    3. 关闭swap
sudo swapoff -a

     注释swap挂载,如下图:

kubernetes中如何使用 kubeadm 创建高可用集群

三. 安装docker、kubeadm、kubelet、kubectl


1. 安装docker-ce
  • 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加 yum 源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装 docker-ce
sudo yum install -y docker-ce-18.09.1-3.el7
  • 官方推荐修改 cgroup driver 为 systemd,更稳定,详见:Https://kubernetes.io/docs/setup/cri 

mkdir /etc/dockercat <<EOF > /etc/docker/daemon.JSON{"exec-opts": ["native.cgroupdriver=systemd"]}EOFsystemctl restart dockersystemctl enable docker

2. 配置 CNI插件(flannel) 所需的iptables转发参数

cat <<EOF >  /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl -p /etc/sysctl.d/k8s.conf

3. 安装kubeadm、kubelet、kubectl

  • 官方 yum 源国内访问不了,这里添加阿里云 yum 源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpGCheck=0enabled=1EOF
  • yum 安装
sudo yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1 --disableexcludes=kubernetessystemctl enable kubelet

提示:上面步骤二 和 步骤三 所有k8s节点都需要执行

四. 安装haproxy


1配置 kube-apiserver 高可用需要一个负载均衡,这里直接使用了一个单节点 haproxy 代替一下,实际生产环境中使用 keepalived 保证 haproxy 的高可用
sudo yum install -y haproxy
2. 将 master node 的 kube-apiserver 的 6443 添加到 haproxy做负载均衡
vi /etc/haproxy/haproxy.cfgfrontend k8s_apiserver *:6443  mode tcp  default_backend k8sbackend k8s  mode tcp  balance    roundrobin  server     node-01 192.168.199.201:6443 check  server     node-02 192.168.199.202:6443 check  server     node-03 192.168.199.203:6443 check
3. reload 应用配置
systemctl reload haproxy
4. 查看6443端口是否已经在监听状态

kubernetes中如何使用 kubeadm 创建高可用集群kubernetes中如何使用 kubeadm 创建高可用集群

五. 安装 master node


1.  创建 kubeadm 配置文件
cat <<EOF > kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta2kind: ClusterConfigurationkubernetesVersion: v1.15.1controlPlaneEndpoint: "192.168.199.200:6443"imageRepository: "reGIStry.aliyuncs.com/Google_containers"networking:  podSubnet: "10.244.0.0/16"apiServer:  certSANs:  - "k8s.mytest.com"EOF
# controlPlaneEndpoint   haproxy 的负载均衡监听地址# imageRepository  默认使用gcr.io镜像站,国内访问不了,这里指定从阿里云的镜像站拉镜像
2. 初始化集群
sudo kubeadm init --config=kubeadm-config.yaml --upload-certs
  • 初始化成功,记录下最后提示的 kubeadm join xxx 命令, 第一个是往集群添加master node,第二个是往集群添加 worker node

kubernetes中如何使用 kubeadm 创建高可用集群

3.  为 kubectl 配置kube-config
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  sudo chown $(id -u):$(id -g) $HOME/.kube/config
4.  安装 CNI插件 flannel
wget https://raw.GitHubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
  •  默认是从quay.io拉取flannel镜像,但是经常因为网络原因拉不了,这里从阿里云找了一个替换了一下

sed -i s#'quay.io/coreos/flannel:v0.11.0-amd64'#'registry.cn-hangzhou.aliyuncs.com/mygcrio/flannel:v0.11.0-amd64'#g kube-flannel.ymlkubectl apply -f kube-flannel.yml
 5. 使用上面记录的kubeadm jion ... 命令将另外两个master节点(node-02,node-03)添加进集群
 
kubeadm join 192.168.199.200:6443 --token ax13yr.yzsps775bllh0mlo \ --discovery-token-ca-cert-hash sha256:07b2b093be7ddabe7372b2c765b20343aa92f67db99286be1dc46b867a330f95 \ --control-plane --certificate-key b68cd457e26c827994c9804f8adf7a22720aba5a5e9f8e4e487a587b2c2fc127
6.  查看etcd 集群状态
docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes \registry.aliyuncs.com/google_containers/etcd:3.3.10 etcdctl \ --cert-file /etc/kubernetes/pki/etcd/peer.crt \ --key-file /etc/kubernetes/pki/etcd/peer.key \ --ca-file /etc/kubernetes/pki/etcd/ca.crt \ --endpoints https://192.168.199.201:2379 cluster-health
  • kubernetes中如何使用 kubeadm 创建高可用集群图中可以看出etcd 集群健康状态正常,到这里master node基本已经安装结束,下面开始添加worker node。

kubernetes中如何使用 kubeadm 创建高可用集群

六. 添加 worker node

1. 执行 步骤 1.系统配置 和 步骤 2.安装docker、kubeadm、kubelet 
2. 执行集群初始化完成后记录的第二条 kubeadm join ... 命令: 
kubeadm join 192.168.199.200:6443 --token ax13yr.yzsps775bllh0mlo \    --discovery-token-ca-cert-hash sha256:07b2b093be7ddabe7372b2c765b20343aa92f67db99286be1dc46b867a330f95
  kubernetes中如何使用 kubeadm 创建高可用集群

七. 检查集群


1. 查看node
kubernetes中如何使用 kubeadm 创建高可用集群
  • 各节点状态正常,如果有节点状态为 NotReady,有可能是该节点还未完全初始化成功,可以稍等片刻再查看是否正常。

  • 如果想将 master node 同时当做 worker node使用,执行如下命令即可:

kubectl taint nodes --all node-role.kubernetes.io/master-
2. 查看 pod 
  • 如果有系统组件pod状态异常,使用 kubectl describe pod xxx 查看详细信息。

kubernetes中如何使用 kubeadm 创建高可用集群

八.  add-ons


  • dashboard 提供集群的GUI

  • metrics server 提供资源监控(heapster 目前已经被官方弃用)

     

1. 安装 dashboard

  • 生产环境中使用 dashboard 推荐使用 HTTPS,证书获取这里就不写了,可以到阿里云申请免费的DV证书或者 let's encrypt也可以,我这里使用 acme 申请了一个 let's encrypt 的证书,我这里证书文件放在了 $HOME/certs 目录下,里面包含dashboard.crt、dashboard.key两个证书文件;

  • 导入证书

kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kube-system
  • 下载和修改部署官方yaml文件的image,官方的镜像站 k8s.gcr.io 访问不了~访问不了~访问不了~~~

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yamlsed -i s#'k8s.gcr.io/kubernetes-dashboard-amd64'#'registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64'#g kubernetes-dashboard.yaml
  • 部署

kubectl create -f kubernetes-dashboard.yaml
  • 查看 pod 是否已经 running

kubectl get pods -n kube-system
  • 创建完成后我们还不能直接访问dashboard,因为 dashboard  服务还没暴露出来,生产中一般使用 ingress 对外服务,这里我们先用 nodeport 方式暴露出来,下篇文章会写到 ingress 的使用;

kubectl expose svc kubernetes-dashboard --port=443 --target-port=8443 --type=NodePort --name=test-dashboard -n kube-system
  • 查看 service test-dashboard 的 nodeport 端口号:

kubectl describe svc test-dashboard -n kube-system

kubernetes中如何使用 kubeadm 创建高可用集群

  • 使用任意节点 ip:端口号 访问;使用ip可能会提示非安全访问,因为访问的域名和签名申请的证书域名不一致导致,这里先选择继续访问即可,后续写到 ingress 的时候也会解决

kubernetes中如何使用 kubeadm 创建高可用集群

  • 已经安装成功,但是还需创建一个管理员用户登录:

vi admin-user.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: admin-user  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: admin-userroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:- kind: ServiceAccount  name: admin-user  namespace: kube-system
  • 查看 token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

kubernetes中如何使用 kubeadm 创建高可用集群

  • 登录dashboard

kubernetes中如何使用 kubeadm 创建高可用集群

2. 安装 metrics-server

  • 拉取 metrics-server 仓库

git clone https://github.com/kubernetes-incubator/metrics-server.git
  • 部署,官方image还是下载不了,替换image

sed -i s#'k8s.gcr.io'#'registry.aliyuncs.com/google_containers'#g metrics-server/deploy/1.8+/metrics-server-deployment.yamlkubectl create -f metrics-server/deploy/1.8+/
  • 确定 pod 已经 running

kubectl get pods -n kube-system
  • 编辑 deployment, 添加参数:

args:- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

kubernetes中如何使用 kubeadm 创建高可用集群

  • kubernetes中如何使用 kubeadm 创建高可用集群成功获取cpu和内存指标,如果出现 "error: metrics not available yet", 那就稍等几分钟再试,metrics server 需要采集指标数据

kubernetes中如何使用 kubeadm 创建高可用集群kubernetes中如何使用 kubeadm 创建高可用集群

上述内容就是kubernetes中如何使用 kubeadm 创建高可用集群,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: kubernetes中如何使用 kubeadm 创建高可用集群

本文链接: https://www.lsjlt.com/news/295251.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • kubernetes中如何使用 kubeadm 创建高可用集群
    本篇文章为大家展示了kubernetes中如何使用 kubeadm 创建高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一. 环境和版本信息OS:  CentO...
    99+
    2023-06-19
  • 如何使用kubeadm命令行工具创建kubernetes集群
    这篇文章主要为大家展示了“如何使用kubeadm命令行工具创建kubernetes集群”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用kubeadm命令行工具创建kubernetes集群”...
    99+
    2023-06-29
  • 使用kubeadm命令行工具创建kubernetes集群
    目录命令行工具通过软件仓库安装二进制文件下载安装ubutu & centos 快速安装创建 kubernetes 集群1,创建 Master2,然后初始化集群网络。3,加入集...
    99+
    2024-04-02
  • 怎么使用kubeadm安装kubernetes 1.13高可用集群
    小编给大家分享一下怎么使用kubeadm安装kubernetes 1.13高可用集群,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!kubeadm安装kubernetes 1.13高可用集群初始化集群:配置hosts文件vi...
    99+
    2023-06-04
  • kubeadm中如何部署kubernetes集群
    kubeadm中如何部署kubernetes集群,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、环境要求这里使用RHEL7.5master、etcd:192.168.10.1...
    99+
    2023-06-19
  • 如何使用Kubeadm快速搭建Kubernetes
    这篇文章主要讲解了“如何使用Kubeadm快速搭建Kubernetes”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Kubeadm快速搭建Kubernetes”吧!##版本说明 ##...
    99+
    2023-06-19
  • 如何在Kubernetes上部署Redis高可用集群
    如何在Kubernetes上部署Redis高可用集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 Redis 介绍Redis 代表REmote DI...
    99+
    2023-06-15
  • 如何使用VirtualBox+Ubuntu16搭建Kubernetes集群
    小编给大家分享一下如何使用VirtualBox+Ubuntu16搭建Kubernetes集群,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Kubernetes 运...
    99+
    2023-06-15
  • mysql高可用集群如何搭建
    要搭建MySQL高可用集群,可以按照以下步骤进行操作: 选择合适的集群架构:常用的MySQL集群架构有主从复制、主备切换和主主复...
    99+
    2023-10-24
    mysql
  • 使用Gardener在Google Cloud Platform上创建Kubernetes集群
    Gardener是一个开源项目,github地址:https://github.com/gardener/gardener/使用Gardener,我们可以在几分钟之内在GCP, AWS, Azure或者Openstack上轻松创建Kuber...
    99+
    2023-06-04
  • 如何使用PHP和Kubernetes构建容器集群
    随着云计算技术的发展,容器化架构已经成为云计算领域的热门技术之一。Kubernetes是一个开源的容器编排系统,它能够帮助开发者对容器化应用进行自动化部署、缩放、运维等操作。而PHP是一种流行的Web开发语言,它被广泛应用于Web应用的开发...
    99+
    2023-05-23
    PHP Kubernetes 容器集群
  • Kubernetes​怎么部署高可用kube-apiserver集群
    这篇文章主要讲解了“Kubernetes怎么部署高可用kube-apiserver集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes怎么部署高可用kube-apiserv...
    99+
    2023-06-29
  • Kubernetes中如何使用Rancher部署K8S集群
    本篇文章给大家分享的是有关Kubernetes中如何使用Rancher部署K8S集群,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.安装Rancher这里使用三台机器来搭建K...
    99+
    2023-06-19
  • kubernetes集群怎么搭建和使用
    要搭建和使用Kubernetes集群,可以按照以下步骤进行操作:1. 安装Docker:Kubernetes需要在每个节点上安装Do...
    99+
    2023-08-24
    kubernetes
  • Python如何使用Kubernetes API访问集群
    这篇文章主要介绍了Python如何使用Kubernetes API访问集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过将身份认证令牌直接传给 API 服务器,可以避免使...
    99+
    2023-06-15
  • Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心
    今天就跟大家聊聊有关Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。这一篇主要介绍一下如何搭建一个高可用的 Eu...
    99+
    2023-06-04
  • CentOS7怎么搭建高可用集群
    这篇文章主要讲解了“CentOS7怎么搭建高可用集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7怎么搭建高可用集群”吧!一、安装集群软件必须软件pcs,pacemaker,c...
    99+
    2023-06-28
  • 使用Redis5怎么搭建一个高可用集群
    本篇文章为大家展示了使用Redis5怎么搭建一个高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、安装redis安装gccyum install gcc下载redis-...
    99+
    2023-06-14
  • 如何配置高可用RabbitMQ集群
    这篇文章给大家分享的是有关如何配置高可用RabbitMQ集群的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开...
    99+
    2023-06-27
  • 怎么实现Kubernetes跨集群服务应用的高可用
    本篇文章给大家分享的是有关怎么实现Kubernetes跨集群服务应用的高可用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Kubernetes 1.3版本,我们希望降低跨集群...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作