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
出现上面这样就是安装成功,我在第一次安装的时候是会提示下面这个错误
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
三、安装 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
发现全部都是运行,然后我们看看制定默认存储是否成功,直接输入
kubectl get sc
发现已经有了一个默认标签,这样我们就指定了一个默认存储。
四、安装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
稍等片刻,正常情况出现下面这个效果图就是代码安装成功了
五、登陆管理界面
我们根据安装后返回的登陆地址以及账号密码登陆,出现下面这个效果图
我们可以输入下面这个命令查看安装情况
kubectl get pods -n kubesphere-monitoring-system
全部都处于Running,代表运行成功。
这样我们就成功在Kubernetes集群安装kubesphere。
0条评论