k8s kubesphere安装在k8s中的基础环境准备(前提条件)

青旅半醒 2023-10-05 18:23 106阅读 0赞

先决条件

只要您的 Kubernetes 集群满足以下先决条件,不仅可以将 KubeSphere 安装在具有预配置的 Kubernetes 的虚拟机和裸机上,而且还支持在云托管和本地现有 Kubernetes 群集上进行安装。

  • Kubernetes 版本: 1.15.x, 1.16.x, 1.17.x, 1.18.x
  • 可用 CPU > 1 核; 内存 > 2 G。
  • Kubernetes 集群已配置***默认***存储类型(StorageClass); 请使用 kubectl get sc 命令进行确认。
  • 当使用 --cluster-signing-cert-file--cluster-signing-key-file 参数启动集群时,kube-apiserver 将启用 CSR 签名功能。请参阅 RKE 安装问题。

预检查

  1. 通过在集群节点中运行 kubectl version,确保您的 Kubernetes 版本在 KuberSphere 兼容范围内。输出类似如下所示:

    1. $ kubectl version
    2. Client Version: version.Info{
    3. Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
    4. Server Version: version.Info{
    5. Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

    备注

    注意 Server Version 行,如果 GitVersion 显示的是旧版本,则需要先升级 Kubernetes,请参阅将 kubeadm 集群从 v1.14 升级到 v1.15。

  2. 检查集群中的可用资源是否满足最低要求。

    1. $ free -g
    2. total used free shared buff/cache available
    3. Mem: 16 4 10 0 3 2
    4. Swap: 0 0 0
  3. 检查集群中是否有***默认***的存储类,准备就绪的默认存储类是 KubeSphere 安装的先决条件。

    1. $ kubectl get sc
    2. NAME PROVISIONER AGE
    3. glusterfs (default) kubernetes.io/glusterfs 3d4h

    cd /home/kubesphere-install/nfs-provisioner

    1. [root@m-1 nfs-provisioner]# ll
    2. 总用量 8
    3. -rw-r--r--. 1 root root 2320 1 23 00:57 nfs-rbac.yaml
    4. -rw-r--r--. 1 root root 129 1 23 01:01 storageclass-nfs.yaml

    使用nfs作为默认的存储类。

    • nfs-rbac.yaml

      [root@m-1 nfs-provisioner]# cat nfs-rbac.yaml

      apiVersion: v1
      kind: ServiceAccount
      metadata:

      name: nfs-provisioner

      kind: ClusterRole
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
      name: nfs-provisioner-runner
      rules:

      • apiGroups: [“”]
        resources: [“persistentvolumes”]
        verbs: [“get”, “list”, “watch”, “create”, “delete”]
      • apiGroups: [“”]
        resources: [“persistentvolumeclaims”]
        verbs: [“get”, “list”, “watch”, “update”]
      • apiGroups: [“storage.k8s.io”]
        resources: [“storageclasses”]
        verbs: [“get”, “list”, “watch”]
      • apiGroups: [“”]
        resources: [“events”]
        verbs: [“watch”, “create”, “update”, “patch”]
      • apiGroups: [“”]
        resources: [“services”, “endpoints”]
        verbs: [“get”,”create”,”list”, “watch”,”update”]
      • apiGroups: [“extensions”]
        resources: [“podsecuritypolicies”]
        resourceNames: [“nfs-provisioner”]
        verbs: [“use”]

      kind: ClusterRoleBinding
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
      name: run-nfs-provisioner
      subjects:

      • kind: ServiceAccount
        name: nfs-provisioner
        namespace: default
        roleRef:
        kind: ClusterRole
        name: nfs-provisioner-runner
        apiGroup: rbac.authorization.k8s.io

      vi nfs-deployment.yaml;创建nfs-client的授权

      kind: Deployment
      apiVersion: apps/v1
      metadata:
      name: nfs-client-provisioner
      spec:
      replicas: 1
      strategy:

      1. type: Recreate

      selector:

      1. matchLabels:
      2. app: nfs-client-provisioner

      template:

      1. metadata:
      2. labels:
      3. app: nfs-client-provisioner
      4. spec:
      5. serviceAccount: nfs-provisioner
      6. containers:
      7. - name: nfs-client-provisioner
      8. image: 192.168.145.28:1603/kubesphere/nfs-client-provisioner:v3.1.0-k8s1.11
      9. volumeMounts:
      10. - name: nfs-client-root
      11. mountPath: /persistentvolumes
      12. env:
      13. - name: PROVISIONER_NAME #供应者的名字
      14. value: storage.pri/nfs #名字虽然可以随便起,以后引用要一致
      15. - name: NFS_SERVER
      16. value: 192.168.116.101
      17. - name: NFS_PATH
      18. value: /nfs/data
      19. volumes:
      20. - name: nfs-client-root
      21. nfs:
      22. server: 192.168.116.101
      23. path: /nfs/data
    • storageclass-nfs.yaml

      [root@m-1 nfs-provisioner]# cat storageclass-nfs.yaml
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
      name: storage-nfs
      provisioner: storage.pri/nfs
      reclaimPolicy: Delete

如果您的 Kubernetes 集群环境满足上述所有要求,那么您就可以在现有 Kubernetes 集群上部署 KubeSphere 了。

有关更多信息,请参见概述。

本文参考链接:

https://kubesphere.com.cn/docs/installing-on-kubernetes/introduction/prerequisites/

https://www.yuque.com/leifengyang/kubesphere/hxzk3t#JtnJN

发表评论

表情:
评论列表 (有 0 条评论,106人围观)

还没有评论,来说两句吧...

相关阅读