微信公众号搜索 DevOps和k8s全栈技术 ,即可关注,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家参考阅读哈~

往期文章回顾

k8s1.18多master节点高可用集群安装-超详细中文官方文档

基于Kubernetes安装KubeSphere容器平台

在之前的文章中,已经演示了如何部署一个高可用的 Kubernetes 集群环境,本文将基于 Kubernetes 集群安装开源的 KubeSphere 容器平台,帮助企业可视化管理 Kubernetes 集群。

什么是KubeSphere

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 支持部署在任何基础设施环境,提供在线与离线安装,支持一键升级与扩容集群,并且各功能组件支持模块化和可插拔的安装。


控制台界面概览

关于 KubeSphere 平台详细的功能介绍,可以参考 KubeSphere 中文文档:https://kubesphere.com.cn/docs/zh-CN/introduction/features/

工作台

项目资源

应用商店


安装KubeSphere

本文将在 Kubernetes 集群说明如何安装 KubeSphere v2.1.1。

前提条件

  • Kubernetes 版本:1.15.x ≤ K8s version ≤ 1.17.x

  • Helm版本:2.10.0 ≤ Helm Version < 3.0.0(不支持 helm 2.16.0),且已安装了 Tiller(KubeSphere 3.0 将支持 Helm v3);

  • 集群有默认的存储类型(StorageClass)

  • 集群能够访问外网,若无外网请参考 在 Kubernetes 离线安装 KubeSphere,地址 https://kubesphere.com.cn/docs/installation/install-on-k8s-airgapped/

安装 Helm 和 Tiller

提示:若集群已有 Helm 和 Tiller,可跳过本节操作。

  1. 从 Helm 的 GitHub https://github.com/helm/helm/releases/tag/v2.16.3 下载 helm-v2.16.3-linux-amd64.tar.gz

  2. 上传到服务器,解压移动 Helm、Tiller 到 /usr/local/bin/

[root@k8s-node1 linux-amd64]# cp helm /usr/local/bin/
[root@k8s-node1 linux-amd64]# cp tiller /usr/local/bin/
  1. 验证 Helm 的安装:

helm help
  1. 创建权限:

创建一个新的文件 helm_rbac.yaml,内容如下:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
  1. 然后使用 kubectl 使其创建生效。

[root@k8s-node1 k8s]# kubectl apply -f helm_rbac.yaml
serviceaccount/tiller created
clusterrolebinding.rbac.authorization.k8s.io/tiller created
  1. 初始化 Helm,这里用的国内的镜像源。

helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.3 --history-max 300
  1. 验证 Helm Tiller。如果状态是 ImagePullBackOff,表示镜像未拉取成功,需要手动拉取。

kubectl -n kube-system get pods|grep tiller
  1. 检查 Tiller 是否部署到 Kubernetes:

[root@k8s-node1 local]# kubectl get pod -n kube-system -l app=helm
NAME                             READY   STATUS    RESTARTS   AGE
tiller-deploy-7b76b656b5-m4k2x   1/1     Running   0          94s

安装持久化存储与StorageClass

提示:

  • 若您的集群已有持久化存储与 StorageClass,可跳过本小节

  • OpenEBS 将使用 LocalPV 作为存储卷,仅建议用作开发测试环境,生产环境建议使用 Ceph、GlusterFS 等独立的分布式存储服务

  • 安装之前,请确保 master 节点没有 Taints (待安装完 KubeSphere 之后再添加 Taints)

  1. 确认 master 节点是否有 Taint,如下看到 master 节点有 Taint。

$ kubectl describe node master | grep Taint
Taints:             node-role.kubernetes.io/master:NoSchedule
  1. 去掉 master 节点的 Taint:

$ kubectl taint nodes master node-role.kubernetes.io/master:NoSchedule-
  1. 创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下:

$ kubectl create ns openebs
  1. 安装 OpenEBS

helm init


helm install --namespace openebs --name openebs stable/openebs --version 1.5.0
  1. 安装 OpenEBS 后将自动创建 4 个 StorageClass,查看创建的 StorageClass:

$ kubectl get sc
NAME                        PROVISIONER                                                AGE
openebs-device              openebs.io/local                                           10h
openebs-hostpath            openebs.io/local                                           10h
openebs-jiva-default        openebs.io/provisioner-iscsi                               10h
openebs-snapshot-promoter   volumesnapshot.external-storage.k8s.io/snapshot-promoter   10h
  1. 如下将 openebs-hostpath 设置为 默认的 StorageClass

$ kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
storageclass.storage.k8s.io/openebs-hostpath patched

至此,OpenEBS 的 LocalPV 已作为默认的存储类型创建成功。可以通过命令 kubectl get pod -n openebs 来查看 OpenEBS 相关 Pod 的状态,若 Pod 的状态都是 running,则说明存储安装成功。

kubectl安装KubeSphere

当 Kubernetes 集群满足前提条件,实际上安装 KubeSphere 的步骤非常简单,仅一条命令。根据集群资源情况,使用 kubectl 安装 KubeSphere。

最小化安装 KubeSphere

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

kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

完整安装KubeSphere

若集群可用 CPU > 8 Core 且可用内存 > 16 G,可以使用以下命令完整安装 KubeSphere。

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

kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-complete-setup.yaml

提示:若您的服务器提示无法访问 GitHub,可将 kubesphere-minimal.yamlkubesphere-complete-setup.yaml 从 GitHub 地址 https://github.com/kubesphere/ks-installer/ 拷贝文件保存到本地作为本地的静态文件,再参考上述命令进行安装。

验证与访问

  1. 查看滚动刷新的安装日志,请耐心等待安装成功。

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

说明:安装过程中若遇到问题,也可以通过以上日志命令来排查问题。

  1. 通过 kubectl get pod --all-namespaces 查看 KubeSphere 相关 namespace 下所有 Pod 状态是否为 Running。确认 Pod 都正常运行后,可使用 IP:30880 访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd

如何开启可选功能组件的安装

若开启了最小化安装,请参考 KubeSphere 可插拔功能组件概览,地址 https://kubesphere.com.cn/docs/zh-CN/installation/pluggable-components/,确保机器可用资源满足其最低要求,然后再开启可选功能组件的安装。

活动预告

KubeSphere 即将重磅发布 v3.0,欢迎关注和报名参加 6 月 30 日 KubeSphere 线上发布会的直播。

技术交流群

为了大家更快速的学习知识,掌握技术,随时沟通交流问题,特组建了技术交流群,大家在群里可以分享自己的技术栈,抛出日常问题,群里会有很多大佬及时解答,这样我们就会结识很多志同道合的人,长按下图可加我微信,备注运维或者k8s或者devops即可进群,让我们共同努力,向着美好的未来出发吧~~~,想要免费获取各个版本的k8s高可用集群的安装视频或者其他的免费视频,也可进群获取哈~~     

              

                              扫码加群????

微信:luckylucky421302

微信公众号

                                     长按指纹关注公众号????

往期精彩文章

kubernetes全栈技术+企业案例演示【带你快速掌握和使用k8s】

kubernetes面试题汇总

DevOps视频和资料免费领取

kubernetes技术分享-可用于企业内部培训

谈谈我的IT发展之路

kubernetes系列文章第一篇-k8s基本介绍

kubernetes系列文章第二篇-kubectl

了解pod和pod的生命周期-这一篇文章就够了

kubernetes集群中部署EFK日志管理系统

Kubernetes中部署MySQL高可用集群

Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档

k8s1.18多master节点高可用集群安装-超详细中文官方文档

Kubernetes Pod健康检查-livenessProbe和readinessProbe

kubernetes pod生命周期管理-postStart和preStop

k8s中蓝绿部署、金丝雀发布、滚动更新汇总

运维常见问题汇总-tomcat篇

运维常见问题汇总-tomcat部署java项目大量close_wait解决方案

关于linux内核参数的调优,你需要知道

kubernetes持久化存储volume

kubernetes挂载ceph rbd和cephfs

报警神器Alertmanager发送报警到多个渠道

jenkins+kubernetes+harbor+gitlab构建企业级devops平台

                            

                                       点击在看少个 bug????

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐