基于Kubernetes安装KubeSphere容器平台
微信公众号搜索 DevOps和k8s全栈技术 ,即可关注,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家参考阅读哈~往期文章回顾k8s1.18多master节点高可用集群安...
微信公众号搜索 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,可跳过本节操作。
从 Helm 的 GitHub
https://github.com/helm/helm/releases/tag/v2.16.3
下载helm-v2.16.3-linux-amd64.tar.gz
。上传到服务器,解压移动 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/
验证 Helm 的安装:
helm help
创建权限:
创建一个新的文件 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
然后使用 kubectl 使其创建生效。
[root@k8s-node1 k8s]# kubectl apply -f helm_rbac.yaml
serviceaccount/tiller created
clusterrolebinding.rbac.authorization.k8s.io/tiller created
初始化 Helm,这里用的国内的镜像源。
helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.3 --history-max 300
验证 Helm Tiller。如果状态是
ImagePullBackOff
,表示镜像未拉取成功,需要手动拉取。
kubectl -n kube-system get pods|grep tiller
检查 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)
确认 master 节点是否有 Taint,如下看到 master 节点有 Taint。
$ kubectl describe node master | grep Taint
Taints: node-role.kubernetes.io/master:NoSchedule
去掉 master 节点的 Taint:
$ kubectl taint nodes master node-role.kubernetes.io/master:NoSchedule-
创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下:
$ kubectl create ns openebs
安装 OpenEBS
helm init
helm install --namespace openebs --name openebs stable/openebs --version 1.5.0
安装 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
如下将
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.yaml
或kubesphere-complete-setup.yaml
从 GitHub 地址https://github.com/kubesphere/ks-installer/
拷贝文件保存到本地作为本地的静态文件,再参考上述命令进行安装。
验证与访问
查看滚动刷新的安装日志,请耐心等待安装成功。
$ kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
说明:安装过程中若遇到问题,也可以通过以上日志命令来排查问题。
通过
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】
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
k8s1.18多master节点高可用集群安装-超详细中文官方文档
Kubernetes Pod健康检查-livenessProbe和readinessProbe
kubernetes pod生命周期管理-postStart和preStop
运维常见问题汇总-tomcat部署java项目大量close_wait解决方案
jenkins+kubernetes+harbor+gitlab构建企业级devops平台
点击在看少个 bug????
更多推荐
所有评论(0)