searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

kubekey离线部署k8s集群

2023-05-23 01:16:54
267
0

kubekey 优势

- 基于 Ansible 的安装程序具有大量软件依赖性,例如 Python。KubeKey 是使用 Go 语言开发的,可以消除在各种环境中出现的问题,从而提高安装成功率。

- KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 K8s 集群,以降低安装复杂性并提高效率。与较早的安装程序相比,它将大大节省安装时间。

- KubeKey 支持将集群从 all-in-one 扩展到多节点集群甚至 HA 集群。

- KubeKey 旨在将集群当作一个对象操作,即 CaaO。(cluster as a object)

操作系统要求:

- SSH 可以访问所有节点。

- 所有节点的时间同步。

- sudo/curl/openssl 应在所有节点使用。

- docker 可以自己安装,也可以通过 KubeKey 安装。

- Red Hat 在其 Linux 发行版本中包括了 SELinux,建议关闭SELinux或者将SELinux的模式切换为Permissive[宽容]工作模式。

依赖要求:

- KubeKey 可以同时安装 Kubernetes 和 KubeSphere。在版本1.18之后,安装kubernetes前需要安装一些依赖。你可以参考下面的列表,提前在你的节点上检查并安装相关依赖。

 

Kubernetes 版本 ≥ 1.18

socat

必须安装

conntrack

必须安装

ebtables

可选,但推荐安装

ipset

可选,但推荐安装

ipvsadm

可选,但推荐安装

下载kubekey可执行文件:

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

kubekey创建高可用集群

1、内置HAproxy

KubeKey 作为一种集群安装工具,从版本 v1.2.1 开始,提供了内置高可用模式,支持一键部署高可用集群环境。KubeKey 的高可用模式实现方式称作本地负载均衡模式。具体表现为 KubeKey 会在每一个工作节点上部署一个负载均衡器(HAproxy),所有主节点的 Kubernetes 组件连接其本地的 kube-apiserver ,而所有工作节点的 Kubernetes 组件通过由 KubeKey 部署的负载均衡器反向代理到多个主节点的 kube-apiserver 。这种模式相较于专用到负载均衡器来说效率有所降低,因为会引入额外的健康检查机制,但是如果当前环境无法提供外部负载均衡器或者虚拟 IP(VIP)时这将是一种更实用、更有效、更方便的高可用部署模式。

 

2、使用 Keepalived 和 HAproxy 创建高可用

您可以使用任意云负载均衡器或者任意硬件负载均衡器。此外,也可以使用 Keepalived 和 HAproxy,或者 Nginx 来创建高可用集群。

 

安装流程:

1、部署负载均衡器haproxy和keepalived

上传haproxy.tar.gz和keepalived.tar.gz相关rpm包到对应节点;

解压缩后,执行安装:

yum localinstall keepalived/*.rpm -y

yum localinstall haproxy/*.rpm -y

节点master1修改配置文件

/etc/haproxy/haproxy.cfg 展开源码
global
    log /dev/log  local0 warning
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    
   stats socket /var/lib/haproxy/stats
    
defaults
  log global
  option  httplog
  option  dontlognull
        timeout connect 5000
        timeout client 50000
        timeout server 50000
    
frontend kube-apiserver
  bind *:7443
  mode tcp
  option tcplog
  default_backend kube-apiserver
    
backend kube-apiserver
    mode tcp
    option tcplog
    option tcp-check
    balance roundrobin
    default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
    server kube-apiserver-1 192.168.10.100:6443 check # Replace the IP address with your own.
    server kube-apiserver-2 192.168.10.101:6443 check # Replace the IP address with your own.
    server kube-apiserver-3 192.168.10.102:6443 check # Replace the IP address with your own.
/etc/keepalived/keepalived.conf 展开源码
global_defs {
  notification_email {
  }
  router_id LVS_DEVEL
  vrrp_skip_check_adv_addr
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
    
vrrp_script chk_haproxy {
  script "killall -0 haproxy"
  interval 2
  weight 2
}
    
vrrp_instance haproxy-vip {
  state BACKUP
  priority 100
  interface ens33                       # Network card
  virtual_router_id 60
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  unicast_src_ip 192.168.10.100      # The IP address of this machine
  unicast_peer {
    192.168.10.101                         # The IP address of peer machines
  }
    
  virtual_ipaddress {
    192.168.10.110/24                  # The VIP address
  }
    
  track_script {
    chk_haproxy
  }
}

启动服务并设置开机自启动:

systemctl start haproxy && systemctl enable haproxy

systemctl start keepalived && systemctl enable keepalived

节点master2修改配置文件

同master1操作,注意keepalived.conf配置文件中ip地址修改;

启动服务并设置开机自启动。

2、kubekey制作离线包

KubeKey 清单和制品

KubeKey v2.0.0 版本(以下简称 kk )新增了清单(manifest)和制品(artifact)的概念,为用户离线部署 Kubernetes 集群提供了一种解决方案。在过去,用户需要准备部署工具,镜像 tar 包和其他相关的二进制文件,每位用户需要部署的 Kubernetes 版本和需要部署的镜像都是不同的。现在使用 kk 的话,用户只需使用清单manifest文件来定义将要离线部署的集群环境需要的内容,再通过该manifest来导出制品artifact文件即可完成准备工作。离线部署时只需要 kk 和 artifact就可快速、简单的在环境中部署镜像仓库和 Kubernetes 集群。

manifest

就是一个描述当前 Kubernetes 集群信息和定义artifact制品中需要包含哪些内容的文本文件。目前有两种方式来生成该文件:

- 根据模版手动创建并编写该文件。

- 使用 kk 命令根据已存在的集群生成该文件。

原理:

kk 通过 kubeconfig 文件连接对应的 Kubernetes 集群,然后检查出集群环境中以下信息:

- 节点架构

- 节点操作系统

- 节点上的镜像

- Kubernetes 版本

- CRI 信息

之后,这些当前集群的描述信息将最终写入manifest文件中。同时其他无法检测到的相关文件信息(如:ETCD 集群信息、镜像仓库等)也将按照 kk 推荐的默认值写入到manifest文件中。

artifact

制品就是一个根据指定的manifest文件内容导出的包含镜像 tar 包和相关二进制文件的 tgz 包。在 kk 初始化镜像仓库、创建集群、添加节点和升级集群的命令中均可指定一个artifact,kk 将自动解包该artifact并将在执行命令时直接使用解包出来的文件。

注意:

- 导出命令会从互联网中下载相应的二进制文件,请确保网络连接正常。

- kk 会解析镜像列表中的镜像名,若镜像名中的镜像仓库需要鉴权信息,可在manifest文件中的.registry.auths字段中进行配置。

- 若需要导出的artifact文件中包含操作系统依赖文件(如:conntarck、chrony等),可在operationSystem元素中的.repostiory.iso.url中配置相应的 ISO 依赖文件下载地址。

示例:

在源集群中使用 KubeKey 创建 manifest

./kk create manifest

 

修改模板:

manifest-sample.yaml 展开源码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Manifest
metadata:
  name: sample
spec:
  arches:
  - amd64
  operatingSystems:
  - arch: amd64
    type: linux
    id: centos
    version: "7"
    osImage: CentOS Linux 7 (Core)
    repository:
      iso:
        localPath: /root/kubekey/centos7-rpms-amd64.iso
        url:
  kubernetesDistributions:
  - type: kubernetes
    version: v1.22.9
  components:
    helm:
      version: v3.9.0
    cni:
      version: v0.9.1
    etcd:
      version: v3.4.13
    containerRuntimes:
    - type: containerd
      version: 1.6.4
    crictl:
      version: v1.24.0
    ##
    docker-registry:
      version: "2"
    # harbor:
    #   version: v2.4.1
    # docker-compose:
    #   version: v2.2.2
  images:
  - docker.io/coredns/coredns:1.8.0
  - docker.io/kubeovn/kube-ovn:v1.10.6
  - docker.io/kubesphere/k8s-dns-node-cache:1.15.12
  - docker.io/kubesphere/kube-apiserver:v1.22.9
  - docker.io/kubesphere/kube-controller-manager:v1.22.9
  - docker.io/kubesphere/kube-proxy:v1.22.9
  - docker.io/kubesphere/kube-scheduler:v1.22.9
  - docker.io/kubesphere/pause:3.5
  registry:
    auths: {}

从源集群中导出制品 artifact:

./kk artifact export -m manifest-sample.yaml -o kubernetes.tar.gz

执行完毕后将在当前目录下生成kubernetes.tar.gz文件。

 

3、安装镜像仓库

启动镜像仓库:

./kk init registry -f config-sample.yaml -a kubernetes.tar.gz

环境上实际运行:

/usr/local/bin/registry serve /etc/kubekey/registry/config.yaml

 

推送镜像:

# Use the "./kubekey/images" path by default

./kk artifact images push -f config-sample.yaml 

# Specify a artifact

./kk artifact images push -f config-sample.yaml -a kubernetes.tar.gz

# Specify a images' directory

./kk artifact images push -f config-sample.yaml --images-dir ./kubekey/images

4、安装 k8s 集群

离线部署k8s命令:

./kk create cluster -f config-sample.yaml -a kubernetes.tar.gz --with-packages -y

 

参数解释如下:

config-sample.yaml:离线环境集群的配置文件。

kubernetes.tar.gz:源集群打包出来的 tar 包镜像。

--with-packages:若需要安装操作系统依赖,需指定该选项。

config-sample.yaml示例 展开源码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: master1, address: 192.168.10.100, internalAddress: 192.168.10.100, user: root, password: "xxxxxxxx"}
  - {name: master2, address: 192.168.10.101, internalAddress: 192.168.10.101, user: root, password: "xxxxxxxx"}
  - {name: master3, address: 192.168.10.102, internalAddress: 192.168.10.102, user: root, password: "xxxxxxxx"}
  - {name: node1, address: 192.168.10.103, internalAddress: 192.168.10.103, user: root, password: "xxxxxxxx"}
  #- {name: mozidevnode1, address: 10.31.32.11, internalAddress: 10.31.32.11, user: op, privateKeyPath: "/home/op/.ssh/id_rsa"}
  roleGroups:
    etcd:
    - master1
    - master2
    - master3
    control-plane:
    - master1
    - master2
    - master3
    worker:
    - node1
    registry:
    - master1
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy
 
 
    domain: lb.kubesphere.local
    address: "192.168.10.110"
    port: 7443
  kubernetes:
    version: v1.22.9
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
    kata:
      enabled: true
  etcd:
    type: kubekey
  network:
    plugin: kubeovn
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    # 如需使用 kk 部署 harbor, 可将该参数设置为 harbor,不设置该参数且需使用 kk 创建容器镜像仓库,将默认使用docker registry。
    #type: harbor
    # 如使用 kk 部署的 harbor 或其他需要登录的仓库,可设置对应仓库的auths,如使用 kk 创建的 docker registry 仓库,则无需配置该参数。
    # 注意:如使用 kk 部署 harbor,该参数请于 harbor 启动后设置。
    auths:
      "dockerhub.kubekey.local":
    #    username: admin
    #    password: Harbor12345
        cafile: /etc/docker/certs.d/dockerhub.kubekey.local/ca.crt
        certfile: /etc/docker/certs.d/dockerhub.kubekey.local/dockerhub.kubekey.local.cert
        keyfile: /etc/docker/certs.d/dockerhub.kubekey.local/dockerhub.kubekey.local.key
    # 设置集群部署时使用的私有仓库
    privateRegistry: "dockerhub.kubekey.local"
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []

官网模板参考:

https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md

文档参考:

https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md

https://github.com/kubesphere/kubekey/blob/master/docs/zh/manifest_and_artifact.md

0条评论
0 / 1000
L****s
6文章数
1粉丝数
L****s
6 文章 | 1 粉丝
原创

kubekey离线部署k8s集群

2023-05-23 01:16:54
267
0

kubekey 优势

- 基于 Ansible 的安装程序具有大量软件依赖性,例如 Python。KubeKey 是使用 Go 语言开发的,可以消除在各种环境中出现的问题,从而提高安装成功率。

- KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 K8s 集群,以降低安装复杂性并提高效率。与较早的安装程序相比,它将大大节省安装时间。

- KubeKey 支持将集群从 all-in-one 扩展到多节点集群甚至 HA 集群。

- KubeKey 旨在将集群当作一个对象操作,即 CaaO。(cluster as a object)

操作系统要求:

- SSH 可以访问所有节点。

- 所有节点的时间同步。

- sudo/curl/openssl 应在所有节点使用。

- docker 可以自己安装,也可以通过 KubeKey 安装。

- Red Hat 在其 Linux 发行版本中包括了 SELinux,建议关闭SELinux或者将SELinux的模式切换为Permissive[宽容]工作模式。

依赖要求:

- KubeKey 可以同时安装 Kubernetes 和 KubeSphere。在版本1.18之后,安装kubernetes前需要安装一些依赖。你可以参考下面的列表,提前在你的节点上检查并安装相关依赖。

 

Kubernetes 版本 ≥ 1.18

socat

必须安装

conntrack

必须安装

ebtables

可选,但推荐安装

ipset

可选,但推荐安装

ipvsadm

可选,但推荐安装

下载kubekey可执行文件:

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

kubekey创建高可用集群

1、内置HAproxy

KubeKey 作为一种集群安装工具,从版本 v1.2.1 开始,提供了内置高可用模式,支持一键部署高可用集群环境。KubeKey 的高可用模式实现方式称作本地负载均衡模式。具体表现为 KubeKey 会在每一个工作节点上部署一个负载均衡器(HAproxy),所有主节点的 Kubernetes 组件连接其本地的 kube-apiserver ,而所有工作节点的 Kubernetes 组件通过由 KubeKey 部署的负载均衡器反向代理到多个主节点的 kube-apiserver 。这种模式相较于专用到负载均衡器来说效率有所降低,因为会引入额外的健康检查机制,但是如果当前环境无法提供外部负载均衡器或者虚拟 IP(VIP)时这将是一种更实用、更有效、更方便的高可用部署模式。

 

2、使用 Keepalived 和 HAproxy 创建高可用

您可以使用任意云负载均衡器或者任意硬件负载均衡器。此外,也可以使用 Keepalived 和 HAproxy,或者 Nginx 来创建高可用集群。

 

安装流程:

1、部署负载均衡器haproxy和keepalived

上传haproxy.tar.gz和keepalived.tar.gz相关rpm包到对应节点;

解压缩后,执行安装:

yum localinstall keepalived/*.rpm -y

yum localinstall haproxy/*.rpm -y

节点master1修改配置文件

/etc/haproxy/haproxy.cfg 展开源码
global
    log /dev/log  local0 warning
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    
   stats socket /var/lib/haproxy/stats
    
defaults
  log global
  option  httplog
  option  dontlognull
        timeout connect 5000
        timeout client 50000
        timeout server 50000
    
frontend kube-apiserver
  bind *:7443
  mode tcp
  option tcplog
  default_backend kube-apiserver
    
backend kube-apiserver
    mode tcp
    option tcplog
    option tcp-check
    balance roundrobin
    default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
    server kube-apiserver-1 192.168.10.100:6443 check # Replace the IP address with your own.
    server kube-apiserver-2 192.168.10.101:6443 check # Replace the IP address with your own.
    server kube-apiserver-3 192.168.10.102:6443 check # Replace the IP address with your own.
/etc/keepalived/keepalived.conf 展开源码
global_defs {
  notification_email {
  }
  router_id LVS_DEVEL
  vrrp_skip_check_adv_addr
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
    
vrrp_script chk_haproxy {
  script "killall -0 haproxy"
  interval 2
  weight 2
}
    
vrrp_instance haproxy-vip {
  state BACKUP
  priority 100
  interface ens33                       # Network card
  virtual_router_id 60
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  unicast_src_ip 192.168.10.100      # The IP address of this machine
  unicast_peer {
    192.168.10.101                         # The IP address of peer machines
  }
    
  virtual_ipaddress {
    192.168.10.110/24                  # The VIP address
  }
    
  track_script {
    chk_haproxy
  }
}

启动服务并设置开机自启动:

systemctl start haproxy && systemctl enable haproxy

systemctl start keepalived && systemctl enable keepalived

节点master2修改配置文件

同master1操作,注意keepalived.conf配置文件中ip地址修改;

启动服务并设置开机自启动。

2、kubekey制作离线包

KubeKey 清单和制品

KubeKey v2.0.0 版本(以下简称 kk )新增了清单(manifest)和制品(artifact)的概念,为用户离线部署 Kubernetes 集群提供了一种解决方案。在过去,用户需要准备部署工具,镜像 tar 包和其他相关的二进制文件,每位用户需要部署的 Kubernetes 版本和需要部署的镜像都是不同的。现在使用 kk 的话,用户只需使用清单manifest文件来定义将要离线部署的集群环境需要的内容,再通过该manifest来导出制品artifact文件即可完成准备工作。离线部署时只需要 kk 和 artifact就可快速、简单的在环境中部署镜像仓库和 Kubernetes 集群。

manifest

就是一个描述当前 Kubernetes 集群信息和定义artifact制品中需要包含哪些内容的文本文件。目前有两种方式来生成该文件:

- 根据模版手动创建并编写该文件。

- 使用 kk 命令根据已存在的集群生成该文件。

原理:

kk 通过 kubeconfig 文件连接对应的 Kubernetes 集群,然后检查出集群环境中以下信息:

- 节点架构

- 节点操作系统

- 节点上的镜像

- Kubernetes 版本

- CRI 信息

之后,这些当前集群的描述信息将最终写入manifest文件中。同时其他无法检测到的相关文件信息(如:ETCD 集群信息、镜像仓库等)也将按照 kk 推荐的默认值写入到manifest文件中。

artifact

制品就是一个根据指定的manifest文件内容导出的包含镜像 tar 包和相关二进制文件的 tgz 包。在 kk 初始化镜像仓库、创建集群、添加节点和升级集群的命令中均可指定一个artifact,kk 将自动解包该artifact并将在执行命令时直接使用解包出来的文件。

注意:

- 导出命令会从互联网中下载相应的二进制文件,请确保网络连接正常。

- kk 会解析镜像列表中的镜像名,若镜像名中的镜像仓库需要鉴权信息,可在manifest文件中的.registry.auths字段中进行配置。

- 若需要导出的artifact文件中包含操作系统依赖文件(如:conntarck、chrony等),可在operationSystem元素中的.repostiory.iso.url中配置相应的 ISO 依赖文件下载地址。

示例:

在源集群中使用 KubeKey 创建 manifest

./kk create manifest

 

修改模板:

manifest-sample.yaml 展开源码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Manifest
metadata:
  name: sample
spec:
  arches:
  - amd64
  operatingSystems:
  - arch: amd64
    type: linux
    id: centos
    version: "7"
    osImage: CentOS Linux 7 (Core)
    repository:
      iso:
        localPath: /root/kubekey/centos7-rpms-amd64.iso
        url:
  kubernetesDistributions:
  - type: kubernetes
    version: v1.22.9
  components:
    helm:
      version: v3.9.0
    cni:
      version: v0.9.1
    etcd:
      version: v3.4.13
    containerRuntimes:
    - type: containerd
      version: 1.6.4
    crictl:
      version: v1.24.0
    ##
    docker-registry:
      version: "2"
    # harbor:
    #   version: v2.4.1
    # docker-compose:
    #   version: v2.2.2
  images:
  - docker.io/coredns/coredns:1.8.0
  - docker.io/kubeovn/kube-ovn:v1.10.6
  - docker.io/kubesphere/k8s-dns-node-cache:1.15.12
  - docker.io/kubesphere/kube-apiserver:v1.22.9
  - docker.io/kubesphere/kube-controller-manager:v1.22.9
  - docker.io/kubesphere/kube-proxy:v1.22.9
  - docker.io/kubesphere/kube-scheduler:v1.22.9
  - docker.io/kubesphere/pause:3.5
  registry:
    auths: {}

从源集群中导出制品 artifact:

./kk artifact export -m manifest-sample.yaml -o kubernetes.tar.gz

执行完毕后将在当前目录下生成kubernetes.tar.gz文件。

 

3、安装镜像仓库

启动镜像仓库:

./kk init registry -f config-sample.yaml -a kubernetes.tar.gz

环境上实际运行:

/usr/local/bin/registry serve /etc/kubekey/registry/config.yaml

 

推送镜像:

# Use the "./kubekey/images" path by default

./kk artifact images push -f config-sample.yaml 

# Specify a artifact

./kk artifact images push -f config-sample.yaml -a kubernetes.tar.gz

# Specify a images' directory

./kk artifact images push -f config-sample.yaml --images-dir ./kubekey/images

4、安装 k8s 集群

离线部署k8s命令:

./kk create cluster -f config-sample.yaml -a kubernetes.tar.gz --with-packages -y

 

参数解释如下:

config-sample.yaml:离线环境集群的配置文件。

kubernetes.tar.gz:源集群打包出来的 tar 包镜像。

--with-packages:若需要安装操作系统依赖,需指定该选项。

config-sample.yaml示例 展开源码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: master1, address: 192.168.10.100, internalAddress: 192.168.10.100, user: root, password: "xxxxxxxx"}
  - {name: master2, address: 192.168.10.101, internalAddress: 192.168.10.101, user: root, password: "xxxxxxxx"}
  - {name: master3, address: 192.168.10.102, internalAddress: 192.168.10.102, user: root, password: "xxxxxxxx"}
  - {name: node1, address: 192.168.10.103, internalAddress: 192.168.10.103, user: root, password: "xxxxxxxx"}
  #- {name: mozidevnode1, address: 10.31.32.11, internalAddress: 10.31.32.11, user: op, privateKeyPath: "/home/op/.ssh/id_rsa"}
  roleGroups:
    etcd:
    - master1
    - master2
    - master3
    control-plane:
    - master1
    - master2
    - master3
    worker:
    - node1
    registry:
    - master1
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy
 
 
    domain: lb.kubesphere.local
    address: "192.168.10.110"
    port: 7443
  kubernetes:
    version: v1.22.9
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
    kata:
      enabled: true
  etcd:
    type: kubekey
  network:
    plugin: kubeovn
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    # 如需使用 kk 部署 harbor, 可将该参数设置为 harbor,不设置该参数且需使用 kk 创建容器镜像仓库,将默认使用docker registry。
    #type: harbor
    # 如使用 kk 部署的 harbor 或其他需要登录的仓库,可设置对应仓库的auths,如使用 kk 创建的 docker registry 仓库,则无需配置该参数。
    # 注意:如使用 kk 部署 harbor,该参数请于 harbor 启动后设置。
    auths:
      "dockerhub.kubekey.local":
    #    username: admin
    #    password: Harbor12345
        cafile: /etc/docker/certs.d/dockerhub.kubekey.local/ca.crt
        certfile: /etc/docker/certs.d/dockerhub.kubekey.local/dockerhub.kubekey.local.cert
        keyfile: /etc/docker/certs.d/dockerhub.kubekey.local/dockerhub.kubekey.local.key
    # 设置集群部署时使用的私有仓库
    privateRegistry: "dockerhub.kubekey.local"
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []

官网模板参考:

https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md

文档参考:

https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md

https://github.com/kubesphere/kubekey/blob/master/docs/zh/manifest_and_artifact.md

文章来自个人专栏
k8s云原生
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0