首页 文章 精选 留言 我的

KubeKey_v3.x安装K8s

安装说明

测试环境

该文档测试了[CentOS7.9,Rocky8.x,Rocky9.x]均可安装

集群信息

IP hostname 节点类型
10.0.3.0 master1 master
10.0.3.1 master2 master
10.0.3.2 master2 master
10.0.3.3 node1 node
10.0.3.4 node2 node
10.0.3.5 node3 node
10.0.3.6 nfs-server file-server

参考文档

kubekey: https://github.com/kubesphere/kubekey

安装

前置环境

sh 复制代码
# 安装依赖
# kk下载完成需要解压因此需要tar
# socat,conntrack必装
# ebtables,ipset,ipvsadm选装
# 也可使用离线安装,参考[Linux包安装]

# CentOS7.9
yum install -y tar socat conntrack ebtables ipset ipvsadm

# Rocky8.x,Rocky9.x
dnf install -y tar socat conntrack ebtables ipset ipvsadm

自定义存储插件(可选)

NFS

安装NFS服务

参考[NFS安装(CentOS,Rocky)]

离线搭建(推荐)

sh 复制代码
# 下载chart插件包
https://github.com/kubesphere/helm-charts

# 解压并在找到src/main目录下复制出nfs-client-provisioner文件夹,即nfs客户端的chart
# 修改nfs-client-provisioner/values.yaml

# 修改配置信息
vi nfs-client-provisioner/values.yaml

# 修改以下配置
image:
  # 镜像地址,如需修改私有镜像地址改这里即可
  repository: registry.cn-beijing.aliyuncs.com/kubesphereio/nfs-subdir-external-provisioner
  tag: v4.0.2
  pullPolicy: IfNotPresent
nfs:
  # nfs服务器地址
  server: "10.0.3.6"
  # nfs存储目录
  path: "/data1/nfs/data"
  mountOptions:
storageClass:
  # 是否为默认存储
  defaultClass: true
  
# 将改插件目录上传至/data0目录下(目录和config-sample.yaml配置文件中path属性对应)
# 如:/data0/nfs-client-provisioner

# 集群配置config-sample.yaml添加该插件(后续步奏添加)
  addons:
  - name: nfs-client
    namespace: kube-system
    sources:
      chart:
        name: nfs-client-provisioner
        ## 删除NFS客户端chart插件跟目录,程序会根据path加name找到插件,即/data0/nfs-client-provisioner
        path: /data0

在线搭建

默认配置即可

下载KubeKey

sh 复制代码
# 如果无法访问https://github.com,设置环境
export KKZONE=cn

# 在线下载
curl -sfL https://get-kk.kubesphere.io | sh -
# 指定版本
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.1.11 sh -

# github仓库下载
https://github.com/kubesphere/kubekey/releases

# 赋予执行权限
chmod +x kk

创建配置文件

sh 复制代码
# 查看KubeKey支持的Kubernetes版本列表
./kk version --show-supported-k8s

# Kubernetes版本说明
# kubernetes_v1.21.14支持边缘计算
# docker容器最高支持到kubernetes_v1.24,再高需要Container容器

# kk_v3.1.11
./kk create config --with-kubernetes v1.33.4

修改配置文件

sh 复制代码
# 配置文件说明
# https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md

# 修改配置
vi config-sample.yaml

# hosts节点下下添加自己的主机
# {name: [主机名], address: [外网地址], internalAddress: [内网地址], user: [用户名], password: "[密码]"}

# roleGroups
# etcd节点对应主机,control-plane节点对应主机,worker节点对应主机(主机名均为hosts节点配置的)

# controlPlaneEndpoint
# 如果有多个control-plane需要设置[internalLoadbalancer: haproxy]

kk_v3.1.11 + k8s_v1.33.4

yaml 复制代码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  ## 节点信息
  hosts:
  - {name: master1, address: 10.0.3.0, internalAddress: 10.0.3.0, user: root, password: "root"}
  - {name: master2, address: 10.0.3.1, internalAddress: 10.0.3.1, user: root, password: "root"}
  - {name: master3, address: 10.0.3.2, internalAddress: 10.0.3.2, user: root, password: "root"}
  - {name: node1, address: 10.0.3.3, internalAddress: 10.0.3.3, user: root, password: "root"}
  - {name: node2, address: 10.0.3.4, internalAddress: 10.0.3.4, user: root, password: "root"}
  - {name: node3, address: 10.0.3.5, internalAddress: 10.0.3.5, user: root, password: "root"}
  roleGroups:
    ## etcd节点
    etcd:
    - master1
    - master2
    - master3
    ## 控制节点(master)
    control-plane: 
    - master1
    - master2
    - master3
    ## 工作节点(node)
    worker:
    - node1
    - node2
    - node3
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers 
    internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.33.4
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
  etcd:
    type: kubekey
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: "registry.cn-beijing.aliyuncs.com"
    namespaceOverride: "kubesphereio"
    registryMirrors: []
    insecureRegistries: []
  ## 可选插件
  addons:
    ## nfs插件,参考上述[自定义存储插件]
  - name: nfs-client
    namespace: kube-system
    sources:
      chart:
        name: nfs-client-provisioner
        ## 删除NFS客户端chart插件跟目录,程序会根据path加name找到插件,即/data0/nfs-client-provisioner
        path: /data0

执行安装

sh 复制代码
# 启动安装程序
./kk create cluster -f config-sample.yaml

# 安装成功信息
Pipeline[CreateclusterPipeline] execute successfully

# 可使用以下命令查看k8s的pod安装情况(需要再安装程序执行完k8s初始化才能看到效果)
watch -n 1 kubectl get pod -A
优秀的个人博客,低调大师

微信关注我们

本文章为原创内容,如需转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

Kuboard4安装

Kuboard4安装

产品介绍 Kuboard是一款K8s的图形化管理界面,你可以在安装完Kuboard后,导入完整的K8s集群. 官网地址: https://www.kuboard.cn 安装准备 Kuboard基于Docker Compose安装,因此在此之前需要先安装Docker并带docker-compose指令.参考\[Dcoker安装(在线仓库)] 安装 快速搭建 sh 复制代码 # 创建目录,如 mkdir -p /data1/kuboard-v4 # 创建docker-compose.yaml文件 tee /data1/kuboard-v4/docker-compose.yaml <<-...

相关文章

发表评论

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。