美文网首页
在kubernetes安装kubesphere

在kubernetes安装kubesphere

作者: Anson前行 | 来源:发表于2019-10-28 14:37 被阅读0次

    Kubesphere简介

    KubeSphere 是在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

    image.png

    准备工作

    安装kuberneters
    kubesphere:v2.0

    1. KubeSphere 依赖 Kubernetes 1.13.0版本之后的新特性,执行 kubectl version来确定版本
    $ kubectl  version  | grep  Server
    Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
    

    如果kuberneters版本低于1.13.0,点击升级版本

    2. 确认已安装 Helm,并且 Helm的版本至少为 2.10.0。在终端执行 helm version,得到类似下面的输出
    helm version
    Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
    
    
    3. 集群现有的可用内存至少在 10G以上,官方推荐配置8C16G
    4. KubeSphere 非常建议配合持久化存储使用,若未设置持久化存储,安装将默认使用 hostpath,该方式能顺利安装,但可能会由于 Pod 漂移带来其它问题,正式环境建议配置 StorageClass 使用持久化存储。

    创建StorageClass

    $ cat  << EOF > StorageClass.yaml 
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ks-data
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: fuseim.pri/ifs
    EOF
    $ kubectl  apply -f StorageClass.yaml 
    storageclass.storage.k8s.io/ks-data created
    $ kubectl  get sc
    NAME                PROVISIONER      AGE
    ks-data (default)   fuseim.pri/ifs   4s
    

    部署Kubesphere

    1. 创建名为 kubesphere-system和 kubesphere-monitoring-system的 namespace

    $ cat <<EOF | kubectl create -f -
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
        name: kubesphere-system
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
        name: kubesphere-monitoring-system
    EOF
    

    2. 创建 Kubernetes 集群 CA 证书的 Secret
    注:按照当前集群 ca.crt 和 ca.key 证书路径创建(Kubeadm 创建集群的证书路径一般为 /etc/kubernetes/pki)

    $ kubectl -n kubesphere-system create secret generic kubesphere-ca  \
    --from-file=ca.crt=/etc/kubernetes/pki/ca.crt  \
    --from-file=ca.key=/etc/kubernetes/pki/ca.key 
    

    3. 创建 etcd 的证书 Secret

    注:根据集群实际 etcd 证书位置创建;

    • 若 etcd 已经配置过证书,则参考如下创建:
    $ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs  \
    --from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt  \
    --from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt  \
    --from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key
    
    • 若 etcd 没有配置证书,则创建空 Secret(以下命令适用于 Kubeadm 创建的 Kubernetes 集群环境):
    $ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
    

    4. 克隆 kubesphere-installer 仓库至本地

    $ git clone https://github.com/kubesphere/ks-installer.git
    

    5. 进入 ks-installer,然后在 Kubernetes 集群部署 KubeSphere

    $ cd deploy
    
    $ vim kubesphere-installer.yaml   # 根据下方的参数说明列表,编辑 kubesphere-installer.yaml 中 kubesphere-config 为当前集群参数信息。(若etcd 无证书,设置 etcd_tls_enable: False)
    ---
    apiVersion: v1
    data:
      ks-config.yaml: |
        kube_apiserver_host: 172.16.1.100:6443  #修改为当前IP
        etcd_tls_enable: True
        etcd_endpoint_ips: 172.16.1.100  #修改为当前IP
        disableMultiLogin: True
        elk_prefix: logstash
        metrics_server_enable: False #不需要安装的插件设置为False
        persistence:
          enable: false
          storageClass: ""
    kind: ConfigMap
    metadata:
      name: kubesphere-config
      namespace: kubesphere-system
    ------
    $ kubectl apply -f kubesphere-installer.yaml
    

    6. 查看部署日志

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

    耐心等待所有Pod状态为正常
    7. 查看控制台的服务端口,使用 IP:30880访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd

    $ kubectl get svc -n kubesphere-system    
    # 查看 ks-console 服务的端口  默认为 NodePort: 30880
    
    image.png

    相关文章

      网友评论

          本文标题:在kubernetes安装kubesphere

          本文链接:https://www.haomeiwen.com/subject/jgsrvctx.html