请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

K8S安装Kubesphere和OpenEBS

[复制链接]
6330 abc 发表于 2020-12-8 11:05:54
  1. 准备工作
  2. 安装Helm
  3. curl -L https://git.io/get_helm.sh | bash
  4. 创建账户
  5. cat > heml-rbac.yaml << EOF
  6. apiVersion: v1
  7. kind: ServiceAccount
  8. metadata:
  9.   name: tiller
  10.   namespace: kube-system
  11. ---
  12. apiVersion: rbac.authorization.k8s.io/v1beta1
  13. kind: ClusterRoleBinding
  14. metadata:
  15.   name: tiller
  16. roleRef:
  17.   apiGroup: rbac.authorization.k8s.io
  18.   kind: ClusterRole
  19.   name: cluster-admin
  20. subjects:
  21.   - kind: ServiceAccount
  22.     name: tiller
  23.     namespace: kube-system
  24. EOF
  25. 构建
  26. kubectl apply -f heml-rbac.yaml
  27. 初始化tiller
  28. helm init --service-account=tiller --tiller-image=sapcc/tiller:v2.16.3 --history-max 300
  29. 检查tiller初始化情况
  30. kube-system     tiller-deploy-5fdc6844fb-mfxc4             1/1     Running   0          10m
  31. 安装 OpenEBS 创建 LocalPV 存储类型
  32. k8s-node1: mater节点名称。

  33. 前提条件
  34. 已有 Kubernetes 集群,并安装了 kubectl 或 Helm
  35. Pod 可以被调度到集群的 master 节点(可临时取消 master 节点的 Taint)
  36. 关于第二个前提条件,是由于安装 OpenEBS 时它有一个初始化的 Pod 需要在 master 节点启动并创建 PV 给 KubeSphere 的有状态应用挂载。因此,若您的 master 节点存在 Taint,建议在安装 OpenEBS 之前手动取消 Taint,待 OpenEBS 与 KubeSphere 安装完成后,再对 master 打上 Taint,以下步骤供参考:

  37. 例如本示例有一个 master 节点,节点名称即 master,可通过以下命令查看节点名称:
  38. kubectl get node -o wide
  39. NAME        STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
  40. k8s-node1   Ready    master   168m   v1.17.5   10.0.2.15     <none>        CentOS Linux 7 (Core)   4.4.228-2.el7.elrepo.x86_64   docker://19.3.8
  41. k8s-node2   Ready    <none>   154m   v1.17.5   10.0.2.8      <none>        CentOS Linux 7 (Core)   4.4.228-2.el7.elrepo.x86_64   docker://19.3.8
  42. k8s-node3   Ready    <none>   154m   v1.17.5   10.0.2.9      <none>        CentOS Linux 7 (Core)   4.4.228-2.el7.elrepo.x86_64   docker://19.3.8
  43. 确认 master 节点是否有 Taint,如下看到 master 节点有 Taint。
  44. kubectl describe node k8s-node1 | grep Taint
  45. Taints:             node-role.kubernetes.io/master:NoSchedule
  46. 去掉 master 节点的 Taint
  47. kubectl taint nodes k8s-node1 node-role.kubernetes.io/master:NoSchedule-
  48. 此时可参考安装 OpenEBS 的步骤继续操作。

  49. 安装 OpenEBS
  50. 创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下:
  51. kubectl create ns openebs
  52. 安装 OpenEBS,以下列出两种方法,可参考其中任意一种进行创建:
  53. A. 若集群已安装了 Helm,可通过 Helm 命令来安装 OpenEBS:

  54. helm install --namespace openebs --name openebs stable/openebs --version 1.5.0
  55. B. 除此之外还可以通过 kubectl 命令安装:

  56. $ kubectl apply -f https://openebs.github.io/charts/openebs-operator-1.5.0.yaml
  57. 安装 OpenEBS 后将自动创建 4 个 StorageClass,查看创建的 StorageClass:
  58. kubectl get sc
  59. NAME                        PROVISIONER                                                AGE
  60. openebs-device              openebs.io/local                                           10h
  61. openebs-hostpath            openebs.io/local                                           10h
  62. openebs-jiva-default        openebs.io/provisioner-iscsi                               10h
  63. openebs-snapshot-promoter   volumesnapshot.external-storage.k8s.io/snapshot-promoter   10h
  64. 如下将 openebs-hostpath设置为 默认的 StorageClass:
  65. kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  66. storageclass.storage.k8s.io/openebs-hostpath patched
  67. 至此,OpenEBS 的 LocalPV 已作为默认的存储类型创建成功。可以通过命令 kubectl get pod -n openebs来查看 OpenEBS 相关 Pod 的状态,若 Pod 的状态都是 running,则说明存储安装成功。
  68. 在 Kubernetes 安装 KubeSphere
  69. 安装 KubeSphere
  70. 根据集群资源情况,使用 kubectl 安装 KubeSphere

  71. 最小化安装 KubeSphere
  72. 若集群可用 CPU > 1 Core 且可用内存 > 2 G,可以使用以下命令最小化安装 KubeSphere:

  73. kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml
  74. 完整安装 KubeSphere
  75. 若集群可用 CPU > 8 Core 且可用内存 > 16 G,可以使用以下命令完整安装 KubeSphere。

  76. 注意,应确保集群中有一个节点的可用内存大于 8 G。

  77. kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-complete-setup.yaml
  78. 提示:若您的服务器提示无法访问 GitHub,可将 kubesphere-minimal.yaml 或 kubesphere-complete-setup.yaml 文件保存到本地作为本地的静态文件,再参考上述命令进行安装。

  79. 查看是否安装状态
  80. kubectl get pods --all-namespaces
  81. kubesphere-system   ks-installer-75b8d89dff-9v4xf       0/1     Running   0          94s
  82. 验证与访问
  83. 查看滚动刷新的安装日志,请耐心等待安装成功。
  84. kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
  85. 说明:安装过程中若遇到问题,也可以通过以上日志命令来排查问题。

  86. 通过 kubectl get pod --all-namespaces查看 KubeSphere 相关 namespace 下所有 Pod 状态是否为 Running。确认 Pod 都正常运行后,可使用 IP:30880访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd。
  87. 参考文档: https://kubesphere.io/docs/zh-CN/installation/install-on-k8s/
复制代码


https://www.cnblogs.com/chinda/p/13197246.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表