Kubernetes集群安装kubesphere

Kubernetes集群安装kubesphere

      上一篇介绍了Kubernetes搭建管理UI,但是使用了一周之后发现界面功能太单一,而且有点丑,然后在网上搜了关于Kubernetes管理面板,发现了kubesphere产品,这个管理界面长得还可以,而且功能也比较多,所以自己动手尝试安装,过程也是遇到几处坑,特意记录下来,跟大家分享。

      一、安装版本

      我的Kubernetes版本是1.17.3,安装的kubesphere版本是v3.0.0,安装的时候注意查看对应支持的版本,大家有兴趣可以访问kubesphere,我这里采用的是最小化安装。

      二、安装 Helm

      Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用,我们可以按照以下步骤进行安装

      创建部署并进入目录

mkdir tiller
cd tiller

      下面有两种安装方式,如果是国外服务器可以选择自动安装,国内服务器还是选择手动安装吧。

      自动安装(适用于服务器国外)

curl -L https://git.io/get_helm.sh | bash

      手动安装(适用于服务器国内)

wget https://get.helm.sh/helm-v2.16.3-linux-amd64.tar.gz
tar zxf helm-v2.16.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

      验证版本

helm version

0.png

出现上面这样就是安装成功,我在第一次安装的时候是会提示下面这个错误

Error: could not find tiller

如果遇到了可以按照我这个方法解决

kubectl get all --all-namespaces | grep tiller
kubectl delete deployment tiller-deploy -n kube-system
kubectl delete service tiller-deploy -n kube-system
kubectl get all --all-namespaces | grep tiller
helm init

然后重新输入

helm version

      部署 Tiller,即 Helm 的服务端,先创建 SA,我们直接输入以下命令

vi /root/tiller/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

      创建 RBAC:

kubectl apply -f helm-rbac.yaml

      初始化

helm init --service-account=tiller --history-max 300

      接下来稍等片刻,再次查看deployment和pod详情,就正常了

kubectl get deployment tiller-deploy -n kube-system

11.png

      三、安装 StorageClass

      Kubernetes需要安装StorageClass(被坑得好惨),并且指定默认存储,为了避开坑,我这里就不选择NFS作为集群的 StorageClass,选择的是OpenEBS,有勇气的话就选择NFS。

      直接安装OpenEBS将会被安装到work节点上,建议安装至master节点,所以在安装 OpenEBS 之前手动取消 Taint。

      去掉master节点的Taint,注意后面的“-”号,我这里的master节点名称是k8s-master,大家根据情况替换master节点名称

kubectl taint nodes k8s-master node-role.kubernetes.io/master:NoSchedule-

      添加OpenEBS源

helm repo add openebs https://openebs.github.io/charts

      更新仓库

helm repo update

      创建openebs的名称空间

kubectl create ns openebs

      安装OpenEBS

helm install --namespace openebs --name openebs stable/openebs

 如果安装报以下这个错误

release openebs failed: namespaces "openebs" is forbidden: User "system:servic

可以用这个命令

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

      设置默认的StorageClass

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

      番外介绍两个命令

如果想要取消默认可以输入以下命令
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
如果想要删除存储类
kubectl delete storageclass openebs-hostpath

      查看OpenEBS情况

kubectl get pod -n openebs

12.png

发现全部都是运行,然后我们看看制定默认存储是否成功,直接输入

kubectl get sc

13.png

发现已经有了一个默认标签,这样我们就指定了一个默认存储。

      四、安装kubesphere

      我们在root目录下创一个目录kubesphere来存放从官方下载下来的安装文件

cd /root
mkdir kubesphere
cd kubesphere

      下载文件

wget https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml
wget https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml

      加载配置文件

kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml

      我们可以输入以下命令查看安装情况

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

      稍等片刻,正常情况出现下面这个效果图就是代码安装成功了

2.png

      五、登陆管理界面

      我们根据安装后返回的登陆地址以及账号密码登陆,出现下面这个效果图

微信截图_20211127140017.png

我们可以输入下面这个命令查看安装情况

kubectl get pods -n kubesphere-monitoring-system

15.png

全部都处于Running,代表运行成功。

      这样我们就成功在Kubernetes集群安装kubesphere。

0条评论

发表评论