在安装kubesphere的时候需要先安装镜像管理工具helm它配合着tiller服务能方面地创建拉取地三镜像库更像一个本地的maven工具,安装helm可以通过脚本的方式担是容易被强,下载二进制的软件包解压得到helm把它移动/user/local/bin目录下,然后查看版本,此时是不可用状态。
前提:helm需要权限和角色来访问tiller服务器,这种是行为是对镜像资源的保护,在k8s环境中安装,义pod形式或镜像的形式存在,由于tiller镜像需要外网所以下载镜像文件导入。
1 分配空间和角色,空间用来隔离每个相同的pod的多分存在,角色是保护好k8s所维护的容器环境,不轻易被用户删除,执行kubectl apply -f helm.abc.yam分配角色空间
2 初始化tiller服务,这个过程就是部署一个pod,这个行为定义多个资源,部署资源,服务资源等,资源有按类型区分,初始化tiller服务的时候指定本地已经下载好的镜像如helm init --service-account tiller --tiller-image=jessestuart/tiller:v2.16.3 --history-max 200如果要更行执行
helm init --service-account tiller --tiller-image=jessestuart/tiller:v2.16.3 --upgrade --history-max 200加新版本,但这些都看似没问题的时候继续。
3 查看helm version,selm和tiller都在运行,可以为helm添加常用的镜像源,helm repo add/delete name,查看镜像源helm repo list 更新镜像源helm update,如果镜像源添加失败,是地址不正确或是还没有创建好服务pod,这时候想提前添加源需要创建源的配置文件,然后让helm执行源的加入,最后完成初始化。
4 验证功能是否可用,我安装kubesphere就是遇到helm不可用的问题,没有授权认证,意思是helm想通过tiller来管理镜像仓库,也需要经过k8s的同意认可,需要生成密钥对,这个过程如果你重复执行操作可能导致密钥过时不匹配,tiller无法认证处理k8s的环境资源,解决删除tiller部署,重新完成tiller命名空间角色的创建和tiller的初始化
5 卸载tiller,删除部署信息(一个pod的发布描述)
kubectl delete deployment tiller-deploy -n kube-system
删除额外的配置资源
kubectl get -n kube-system secrets,sa,clusterrolebinding -o name|grep tiller|xargs kubectl -n kube-system delete
kubectl get all -n kube-system -l app=helm -o name|xargs kubectl delete -n kube-system
6 删除后重新完成,后面使用helm ls 和helm list即功能成功,安装kubesphere就不会报错
7 kubeadm集群初始化命令,找到合适的版本加上友好的网络一次成功(kubeadm部署k8s)
kubeadm init --apiserver-advertise-address=10.0.2.9 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16
8报错检查镜像下载情况,手动下载,或者使用kubeadm提供的默认文件,将初始化的指令在文件中保存并应用执行达到同样的效果初始k8s