云原生|kubernetes|kubernetes集群部署神器kubekey安装部署高可用k8s集群(半离线形式)

news2024/11/25 4:40:35

前言:

云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)_晚风_END的博客-CSDN博客

前面利用kubekey部署了一个简单的非高可用,etcd单实例的kubernetes集群,经过研究,发现部署过程可以简化,省去了一部分下载过程(主要是下载kubernetes组件的过程)只是kubernetes版本会固定在1.22.16版本,etcd集群可以部署成生产用的外部集群,并且apiserver等等组件也是高可用,并且部署非常简单,因此,也就非常nice了。

一,

离线安装包

####注,该离线包适用于centos7并在centos7下全系列验证通过,欧拉的部分版本应该也可以使用

链接:https://pan.baidu.com/s/1d4YR_a244iZj5aj2DJLU2w?pwd=kkey 
提取码:kkey 

安装包内大体有如下文件:

 第一个没什么好说的,kubekey的安装包,解压后查看是否有执行权限就可以了,如果没有,添加执行权限

第二个是kubernetes组件的二进制文件,直接解压到root目录下就可以了

第三个是强依赖,解压后,进入解压后目录,执行 rpm -ivh *  就可以了,

第四个事部署清单,需要按照 实际的情况填写IP,还有服务器的密码,别的基本不需要动

然后就可以执行部署工作了,只是会拉取一些镜像,这些镜像是从kubesphere官网拉取,如果嫌拉取镜像太慢,可以export KKZONE=cn ,然后镜像都会从阿里云拉取。

二,

部署清单文件的解析

文件内容如下:

主要是hosts标签,roleGroups标签

hosts标签下面,有几个节点写几个节点,我实验的时候是使用了四个VMware虚拟机,每个虚拟机是4G内存,2CPUI的规格,IP地址和密码按实际填写

用户使用的是root,其实也是避免一些失败的情况,毕竟root权限最高嘛,部署安装工作还是不要花里胡哨的用普通用户(yum部署都从来不用普通用户,就是避免失败的嘛)。

roleGroups的标签是11,12,13 这三个节点做主节点,也是etcd集群的节点

高可用使用的haproxy,具体实现细节还没分析出来。

具体的安装部署的日志在/root/kubekey/logs


apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: node1, address: 192.168.123.11, internalAddress: 192.168.123.11, user: root, password: "密码"}
  - {name: node2, address: 192.168.123.12, internalAddress: 192.168.123.12, user: root, password: "密码"}
  - {name: node3, address: 192.168.123.13, internalAddress: 192.168.123.13, user: root, password: "密码"}
  - {name: node4, address: 192.168.123.14, internalAddress: 192.168.123.14, user: root, password: "密码"}
  roleGroups:
    etcd:
    - node1
    - node2
    - node3
    control-plane: 
    - node1
    - node2
    - node3
    worker:
    - node4
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers 
    internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.23.16
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: docker
  etcd:
    type: kubekey
  network:
    plugin: calico
    kubePodsCIDR: 10.244.0.0/18
    kubeServiceCIDR: 10.96.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []


三,

部署完成的状态检查

Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-2               Healthy   {"health":"true"}   
etcd-1               Healthy   {"health":"true"}   
etcd-0               Healthy   {"health":"true"}   
[root@centos1 ~]# kubectl get po -A -owide
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE    IP               NODE    NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-84897d7cdf-hrj4f   1/1     Running   0          152m   10.244.28.2      node3   <none>           <none>
kube-system   calico-node-2m7hp                          1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
kube-system   calico-node-5ztjk                          1/1     Running   0          152m   192.168.123.14   node4   <none>           <none>
kube-system   calico-node-96dmb                          1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   calico-node-rqp2p                          1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   coredns-b7c47bcdc-bbxck                    1/1     Running   0          152m   10.244.28.3      node3   <none>           <none>
kube-system   coredns-b7c47bcdc-qtvhf                    1/1     Running   0          152m   10.244.28.1      node3   <none>           <none>
kube-system   haproxy-node4                              1/1     Running   0          152m   192.168.123.14   node4   <none>           <none>
kube-system   kube-apiserver-node1                       1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
kube-system   kube-apiserver-node2                       1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   kube-apiserver-node3                       1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   kube-controller-manager-node1              1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
kube-system   kube-controller-manager-node2              1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   kube-controller-manager-node3              1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   kube-proxy-649mn                           1/1     Running   0          152m   192.168.123.14   node4   <none>           <none>
kube-system   kube-proxy-7q7ts                           1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   kube-proxy-dmd7v                           1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   kube-proxy-fpb6z                           1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
kube-system   kube-scheduler-node1                       1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
kube-system   kube-scheduler-node2                       1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   kube-scheduler-node3                       1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   nodelocaldns-565pz                         1/1     Running   0          152m   192.168.123.12   node2   <none>           <none>
kube-system   nodelocaldns-dpwlx                         1/1     Running   0          152m   192.168.123.13   node3   <none>           <none>
kube-system   nodelocaldns-ndlbw                         1/1     Running   0          152m   192.168.123.14   node4   <none>           <none>
kube-system   nodelocaldns-r8gjl                         1/1     Running   0          152m   192.168.123.11   node1   <none>           <none>
[root@centos1 ~]# kubectl get no -owide
NAME    STATUS   ROLES                  AGE    VERSION    INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
node1   Ready    control-plane,master   152m   v1.23.16   192.168.123.11   <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64   docker://20.10.8
node2   Ready    control-plane,master   152m   v1.23.16   192.168.123.12   <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64   docker://20.10.8
node3   Ready    control-plane,master   152m   v1.23.16   192.168.123.13   <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64   docker://20.10.8
node4   Ready    worker                 152m   v1.23.16   192.168.123.14   <none>        CentOS Linux 7 (Core)   3.10.0-1062.el7.x86_64   docker://20.10.8

在将12   节点关闭后,可以看到 kubernetes集群仍可以正常运行(11不能关,因为是管理节点嘛,那些集群的config文件没拷贝到其它节点)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pt19盒模型布局

CSS 盒模型 内容尺寸overflow(占用内容框) 一般情况下&#xff0c;为元素设置width/height&#xff0c;指定的是内容框的大小 内容溢出&#xff1a;内容超出元素的尺寸范围&#xff0c;称为溢出。默认情况下溢出部分仍然可见&#xff0c;可以使用overflow调整溢出部分的显示…

【枚举】CF1833 D

Problem - D - Codeforces 题意&#xff1a; 给定一个序列&#xff0c;让你找一个区间&#xff0c;翻转区间内的数&#xff0c;交换前缀和后缀&#xff0c;让结果数组的字典序最大 思路&#xff1a; 观察样例可知&#xff0c;r是可以直接确定的&#xff0c;l是不确定的&…

使用Docker构建Nginx镜像并部署Web应用

文章目录 1. 简介2. 准备工作3. 编写Dockerfile4. 编写nginx.conf5. 构建镜像6. 查看镜像是否构建成功7. 运行容器8. 访问Web应用9. 总结 1. 简介 Docker是一个开源的容器化平台&#xff0c;它可以帮助我们快速构建、发布和运行应用程序&#xff0c;实现应用程序的环境隔离和依…

DevOps初识

博主入职了&#xff0c;正在学习一些在学校没有接触过的东西&#xff0c;在此进行记录~~~~ 背景 随着软件发布迭代的频率越来越高&#xff0c;传统的「瀑布型」&#xff08;开发—测试—发布&#xff09;模式已经不能满足快速交付的需求。打破开发和运维的壁垒&#xff0c;聪…

K8S初级入门系列之三-Pod的基本概念和操作

一、前言 Pod的原意是豌豆荚的意思&#xff0c;一个豆荚里面包含了很多豆子。在K8S中&#xff0c;Pod也是类似的意思&#xff0c;只不过这里的豆子就是容器。在K8S初级入门系列之一-概述中&#xff0c;我们对Pod有个初步的了解。 1、Pod是K8S编排和调度的最小基础单元。 了解容…

ChatGPT助力校招----面试问题分享(十二)

1 ChatGPT每日一题&#xff1a;运算放大器与比较器的区别 问题&#xff1a;运算放大器与比较器的区别 ChatGPT&#xff1a;运算放大器和比较器都是电子电路中常用的模拟电路元件&#xff0c;但它们的设计和应用略有不同。下面是两者的主要区别&#xff1a; 功能不同&#xf…

微服务——Nacos配置管理

目录 Nacos配置管理——实现配置管理 配置管理实践 Nacos配置管理——微服务配置拉取 Nacos配置管理——配置热更新 方式一: ​编辑 方式二(推荐方式): Nacos配置管理——多环境配置共享 优先级问题 Nacos配置管理——nacos集群搭建 总结​编辑 Nacos配置管理——实现配置管…

Linux 云服务器上部署 web 项目

目录 1)安装 jdk 2)安装 tomcat 3) 设置安全组 4)安装mysql 5) 建库建表 6) 打包部署 1)安装 jdk 使用包管理器进行安装 常用的包管理器 yum (centos 自带的包管理器) apt pacman 我们使用 yum 来进行安装程序 yum list 查看当前的软件包有哪些 命令: yum list | gre…

Oracle 列出一天内每5分钟一条数据

select trunc(sysdate) (rownum-1) / (24*60/5) time from dual connect by rownum < 24*60/5效果如图&#xff0c; 类似的 列出一年内每天、每个月也是用connect by搭配rownum使用

记一次Mysql慢SQL优化过程

缘起 最近有个同事让我看看一个测试环境的SQL&#xff0c;因为这个SQL执行了几十秒&#xff0c;导致接口超时了。 sql为(里面表名已经使用test_table开头的表名脱敏&#xff0c;返回的字段使用*脱敏&#xff0c;别名未修改)&#xff1a; select* fromtest_table1 e join test…

分布式文件存储与数据缓存 FastDFS

一、FastDFS概述 1.1 什么是分布式文件系统 单机时代 初创时期由于时间紧迫&#xff0c;在各种资源有限的情况下&#xff0c;通常就直接在项目目录下建立静态文件夹&#xff0c;用于用户存放项目中的文件资源。如果按不同类型再细分&#xff0c;可以在项目目录下再建立不同的…

【Linux -- systemctl管理服务】

Linux – systemctl管理服务 文章目录 Linux -- systemctl管理服务一、通过systemctl管理单一服务(service unit)二、通过systemctl查看系统上所有的服务三、通过systemctl管理不同的操作环境(target unit)四、通过systemctl分析各服务之间的依赖性总结 一、通过systemctl管理单…

ssh打开远程vscode

如果想要远程打开其他终端的vscode&#xff0c;首先要知道远程终端的ip地址和用户名称以及用户密码 1、打开本地vscode 2、点击左下角蓝色区域 3、页面上部出现如下图&#xff0c;点击ssh&#xff0c;我这里已经连接&#xff0c;所以是connect to host 4、选择Add New SSH Host…

系统架构设计师-软件架构设计(1)

目录 一、软件架构的概念 1、架构的本质 2、架构的作用 二、架构发展历史 三、架构的 “4 1” 视图 1、逻辑视图&#xff08;Logical View&#xff09; 2、开发视图&#xff08;Development View&#xff09; 3、进程视图&#xff08;Process View&#xff09; 4、物理视图…

Python操作文件:从入门到“悟”

一、打开文件 Python里面打开文件可以使用内置的open函数。 open函数的定义如下&#xff1a; def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open常用参数介绍&#xff1a; file&#xff1a;指定要打…

苹果账号被禁用怎么办

转载&#xff1a;苹果账号被禁用怎么办 目录 禁用的原因 解除Apple ID禁用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKQ1ILhC-1689932607373)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw)]​编辑 …

win10电脑便签常驻桌面怎么设置?

你是否曾经因为繁忙的工作而忘记了一些重要的事项&#xff1f;相信很多人都会回答&#xff1a;忘记过&#xff01;其实在快节奏的职场中&#xff0c;我们经常需要记录一些重要的信息&#xff0c;例如会议时间、约见客户时间、今天需要完成的工作任务等。而为了能够方便地记录和…

【简单认识MySQL函数和高级语句】

文章目录 一.常用查询1.按关键字排序&#xff08;ORDER BY 语句&#xff09;1、语法格式2、 ASC和DESC的排序概念3、举例1、按分数排序&#xff0c;默认不指定是升序排列2、分数按降序排列3、order by 还可以结合where进行条件过滤&#xff0c;筛选地址是南京的学生按分数降序排…

07.计算机网络——数据链路层

文章目录 数据链路层以太网帧格式MAC地址理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响 ARP协议**ARP**协议的作用ARP协议的工作流程ARP数据报的格式 数据链路层 ​ 数据链路层在物理层提供的服务的基础上向网络层提供服务&#xff0c;…

了解持续集成、交付和部署

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 软件开发公司变得越来越敏捷。他们不断适应新技术和实践&#xff0c;以在其业务领域保持领先地位。在软件开发中&#xff0c;三种策略&#xff1b;持续集成、持续交付和持续部署是为了快速、一致地开发、部署、测试和…