千云物流- KubeSphere平台安装Linux多节点部署

安装文档

对应的文档

Linux单节点部署KubeSphere

  • 开通服务器
    4c8g;centos7.9;防火墙放行 30000~32767;指定hostname

    hostnamectl set-hostname kube01
     swapoff -a
    

    需要开放的端口千云物流- KubeSphere平台安装Linux多节点部署_第1张图片

  • 安装
    准备KubeKey

    export KKZONE=cn
    
    
    curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
    
    chmod +x kk
    
  • 使用KubeKey引导安装集群

    #需要下面命令
    yum install -y conntrack
    yum install -y socat
    ./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.3.2
    
  • 验证安装结果

    kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
    

千云物流- KubeSphere平台安装Linux多节点部署_第2张图片

  • 安装后开启功能
    密码:Qy566@123
    千云物流- KubeSphere平台安装Linux多节点部署_第3张图片

Linux多节点部署KubeSphere

  • 准备三台服务器

    4c8g (master)

    8c16g * 2(worker)

    centos7.9

    内网互通

    每个机器有自己域名

    防火墙开放30000~32767端口

机器部署

这里最好保证三台机器一样的系统和配置,最好是空的机器。

IP 节点 角色
10.0.0.49 k8s-node1 worker
10.0.0.27 k8s-master control plane, etcd
10.0.0.28 k8s-node2 worker

千云物流- KubeSphere平台安装Linux多节点部署_第4张图片

  • 注意

/var/lib/docker 路径主要用于存储容器数据,在使用和操作过程中数据量会逐渐增加。因此,在生产环境中,建议为
/var/lib/docker 单独挂载一个硬盘。
CPU 必须为 x86_64,暂时不支持 Arm 架构的 CPU。

  • 节点要求

所有节点必须都能通过 SSH 访问。
所有节点时间同步。
所有节点都应使用 sudo/curl/openssl/tar。

host配置地址

 cat >> /etc/hosts << EOF
 > 10.0.0.26 k8s-master
 > 10.0.0.49 k8s-node1
 > 10.0.0.28 k8s-node2
 > EOF

使用KubeKey创建集群

  • 下载KubeKey
    export KKZONE=cn
    curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
    chmod +x kk
    
  • 创建集群配置文件
    #需要下面命令
    yum install -y conntrack
    yum install -y socat
    # 创建配置文件
    ./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.3.2
    # 我们用配置文件启动不需要这个
    #./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.3.2
    
  • 配置文件config-sample.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
 	#name:实例的主机名。
	#address:任务机和其他实例通过 SSH 相互连接所使用的 IP 地址。根据您的环境,可以是公有 IP 地址或私有 IP 地址。例如,一些云平台为每个实例提供一个公有 IP 地址,用于通过 SSH 访问。在这种情况下,您可以在该字段填入这个公有 IP 地址。
	#internalAddress:实例的私有 IP 地址。
	- {name: master, address: 10.0.0.27, internalAddress: 10.0.0.26, user: kube, password: kube@123}
	- {name: node1, address: 10.0.0.49, internalAddress: 10.0.0.49, user: kube, password: kube@123}
	- {name: node2, address: 10.0.0.28, internalAddress: 10.0.0.28, user: kube, password: kube@123}
  roleGroups:
    etcd:
    - master
    control-plane:
    - master
    worker:
    - node1
    # 如需使用 kk 自动部署镜像仓库,请设置该主机组 (建议仓库与集群分离部署,减少相互影响)
    registry:
    - node1
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy
    domain: lb.kubesphere.local
    address: ""
    port: 6443
    #https://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/introduction/vars/
  kubernetes:
    version: v1.22.12
    clusterName: cluster.local
  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:
    # 如需使用 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
    # 设置集群部署时使用的私有仓库
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []

这里建立的kube用户不能执行,权限授权授不明白,一直不能执行,有知道授权那些的可以告知下

  • 使用配置文件创建集群

     ./kk create cluster -f config-sample.yaml
    
  • 查看进度

    kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
    

kubekey集群维护

#删除集群
./kk delete cluster 
./kk delete cluster [-f config-sample.yaml]
#删除节点./kk delete node  -f config-sample.yaml
./kk delete node node1 -f config-sample.yaml
#集群升级
 ./kk upgrade [--with-kubernetes version] [--with-kubesphere version]
 ./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

常见问题

You can look at this config file with ‘kubectl -n kube-system get cm
kubeadm-config -o yaml’ error execution phase preflight: unable to
fetch the kubeadm-config ConfigMap: failed to get config map: Get
“https://lb.kubesphere.local:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s”:
x509: certificate has expired or is not yet valid: current time
2023-06-08T10:37:43+08:00 is before 2023-06-08T11:15:45Z To see the
stack trace of this error execute with --v=5 or higher

  • 处理方法同步服务器时间
yum install -y chrony
systemctl enable chronyd
systemctl start chronyd
timedatectl set-ntp true
timedatectl set-timezone Asia/Shanghai

error: Pipeline[CreateClusterPipeline] execute failed: Module[NodePreCheckModule] exec failed:

  • 处理方法
    使用root进行启动配置,不要使用自己的用户。这个没有解决,不知道说明原因

安装文档参考

https://www.yuque.com/leifengyang/oncloud/dx5ao9

你可能感兴趣的:(千云物流,linux,运维,服务器)