1、安装
本人于2020/9安装的k8s,不同时间段的官方资料会有变动,从而使初学者很抓狂(比如链接404等),所以一定要先看我这篇,尽量一次全部安装成功,不然重装又会出现许多疑难杂症。
官方安装文档
首先,我按照文档一步一步操作,前面都没有问题,直到“最小化安装Kubernetes”,系统找不到此文件。原因是官方在github上的项目改了,导致链接也废了。
这时候我们直接跳到 github,发现最新版本是3.0,按照它的步骤执行就行了。
不过还是有那个问题,就是要执行的文件链接不对。
这时我们可以直接找到这两个文件,在我们的Linux(Kubernetes主节点)中创建出来,再执行。
在linux中,
vi kubesphere-installer.yaml 和 cluster-configuration.yaml,然后把内容复制进去。
注意:DevOps的开关在cluster-configuration.yaml中,默认是false,需要改为true,才会被安装。(当然也可以在安装KubeSphere后再开启安装DevOps组件,也就是官方文件里说的“安装可插拔的功能组件”,但是我个人经验是这样做死活安装不了DevOps,所以建议还是一开始就配置好)
另外,要安装可插拔功能组件(如DevOps),还需要创建一个CA证书
若 Etcd 已经配置过证书,则参考如下创建(以下命令适用于 Kubeadm 创建的 Kubernetes 集群环境):
$ kubectl create ns kubesphere-monitoring-system
$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs \
--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt \
--from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key
若 Etcd 没有配置证书,则创建空 Secret:
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
另另外,官方提供的openebs存储貌似不太好使,很多人安装完后有些pod的状态不对(不是running),我也是。我们可以改用nfs存储 点击进入,搜索“安装nfs存储”
(这里你自己衡量下要不要改吧)
然后然后,就可以开始正式安装啦!!!
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
耐心等待,看到这个就大功告成 !!!
再看一下pod是否都在running状态
kubectl get pods --all-namespaces
恭喜你,可以在浏览器进入30880端口并输入账号密码访问了。
一个巨坑:用360浏览器会由于前端页面有错误而登陆不进去!!!请用谷歌浏览器。
可以看到,DevOps组件也安装好了。
安装纠错
方案一:
查看pod具体信息
kubectl describe pod 【podname】 -n 【namespace】
查看pod日志信息
kubectl logs 【podname】 -n 【namespace】
根据报错信息相应修改。
方案二:重装pod
如果发现某个pod的状态不对(比如状态是pending而不是running),可以使用以下命令重启:
kubectl delete pod 【podname】-n 【namespace】
2、安装其他组件
kubectl edit cc ks-installer -n kubesphere-system
设置 true 或 false 以打开或关闭某组件。
3、疑难杂症
若想重装,则需要删除所有kubesphere开头的命名空间
kubectl delete namespace kubesphere-XXX
再查看集群中所有namespace的状态
kubectl get ns
若发现有命名空间删除失败,状态为Terminating,则:
解决方法一
解决方法二