• Kubernetes 集群在线部署mini KubeSphere


    KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。

    除了在 Linux 机器上安装 KubeSphere 之外,您还可以将其直接部署在现有的 Kubernetes 集群上。

    一、安装前提

    • 如需在 Kubernetes 上安装 KubeSphere v3.1.1,您的 Kubernetes 版本必须为:1.17.x、1.18.x、1.19.x 或 1.20.x。
    • 确保您的机器满足最低硬件要求:CPU > 1 核,内存 > 2 GB。
    • 在安装之前,需要配置 Kubernetes 集群中的默认存储类型。

    二、配置默认storageclass

    配置默认storageclass,以下以nfs为默认storageclass为例:

    一. 搭建storageclass
    1、node节点安装nfs服务

    yum -y install nfs-utils rpcbind
    

      

    2、启动nfs并设为开机自启:

    systemctl start nfs && systemctl enable nfs
    systemctl start rpcbind && systemctl enable rpcbind
    

      

    3、node节点创建共享挂载目录

    mkdir -pv /data/nfs
    

      

    4、编辑/etc/exports文件(网段根据自己的情况写)

    [root@master2 ~]# cat /etc/exports
    /data/nfs  *(rw,no_root_squash,no_all_squash) 

    5、查看

    [root@master2 ~]# showmount -e
    Export list for k8s-node1:
    /data/nfs *
    

      

    6、修改deployment.yaml文件

    cat deployment.yaml
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: nfs-provisioner
    ---
    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
       name: nfs-provisioner-runner
       namespace: default
    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
    ---
    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: nfs-client-provisioner
    spec:
      selector:
        matchLabels:
          app: nfs-client-provisioner
      replicas: 1
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: nfs-client-provisioner
        spec:
          serviceAccount: nfs-provisioner
          containers:
            - name: nfs-client-provisioner
              image: quay.io/external_storage/nfs-client-provisioner:latest
              imagePullPolicy: IfNotPresent
              volumeMounts:
                - name: nfs-client
                  mountPath: /persistentvolumes
              env:
                - name: PROVISIONER_NAME
                  value: fuseim.pri/ifs
                - name: NFS_SERVER
                  value: 10.11.99.141
                - name: NFS_PATH
                  value: /data/nfs
          volumes:
            - name: nfs-client
              nfs:
                server: 10.11.99.141
                path: /data/nfs
    ---
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: nfs-storage
    provisioner: fuseim.pri/ifs
    reclaimPolicy: Retain
    

      

    7、部署yaml文件

    kubectl apply -f  deployment.yaml
    

      

    8、查看服务

    kubectl get pods
    NAME                                      READY   STATUS    RESTARTS   AGE
    nfs-client-provisioner-6d4469b5b5-bh6t9   1/1     Running   0          73m
    

      

    9、列出你的集群中的StorageClass

    kubectl get sc

    NAME                    PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    nfs-storage (default)   fuseim.pri/ifs   Retain          Immediate           false                  18h
    

      

      

    10、标记一个StorageClass为默认的 (是storageclass的名字也就是你部署的StorageClass名字是啥就写啥)

    kubectl patch storageclass nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
    

      

    11、验证你选用为默认的StorageClass

    kubectl get storageclass
    NAME                            PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    nfs-storage (default)   fuseim.pri/ifs   Delete          Immediate           false                  77m
    

      

    三、部署 KubeSphere

    确保您的机器满足安装的前提条件之后,可以按照以下步骤安装 KubeSphere。

    1. 执行以下命令开始安装:

    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/kubesphere-installer.yaml
       
    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/cluster-configuration.yaml
    

     

    2、安装 

    经过一段时间的安装后,看到以下界面则表示安装成功:

     

     

     

    3、登录验证

    登录console:http://10.11.99.141:30880/

    账号:admin

    密码:P@88w0rd

     

     

    平台管理:

     

     

    集群管理

     

  • 相关阅读:
    管理Shader——Shader概览
    游戏组件——总结
    管理Shader——总结
    游戏组件——俄罗斯方块
    1371. Cargo Agency 夜
    1611. Decimation 夜
    hdu 4415 Assassin’s Creed 夜
    1326. Bottle Taps 夜
    hdu 4405 Aeroplane chess 夜
    1223. Chernobyl’ Eagle on a Roof 夜
  • 原文地址:https://www.cnblogs.com/skyflask/p/15237008.html
Copyright © 2020-2023  润新知