安装helm
参考K8s安装Helm https://blog.bwcxtech.com/posts/678a712d/
1、 Helm 客户端安装(master上操作)
https://get.helm.sh/helm-v2.14.1-linux-amd64.tar.gz, 迅雷下载,并上传至服务器
tar -zxf helm-v2.14.1-linux-amd64.tar.gz
cd linux-amd64/
cp helm /usr/local/bin/
验证:
helm version
2. Helm 服务端安装Tiller
在 K8S 集群上每个节点安装 socat 软件(除了这一步,其余的操作都在master执行)
yum install -y socat
创建tiller.yaml
vim tiller.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 create -f tiller.yaml
初始化helm服务端
helm init --service-account tiller --tiller-image yaokun/tiller:v2.15.2 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
kubectl get pod -n kube-system
最后在master上修改helm chart仓库的地址为azure提供的镜像地址:
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo list
安装 OpenEBS(小编的节点名称为 k8s-master, 前提条件和安装 OpenEBS所有步骤全部在master节点执行)
安装 OpenEBS 创建 LocalPV 存储类型
官网: https://v2-1.docs.kubesphere.io/docs/zh-CN/appendix/install-openebs/
前提条件
已有 Kubernetes 集群,并安装了 kubectl 或 Helm
Pod 可以被调度到集群的 master 节点(可临时取消 master 节点的 Taint)
关于第二个前提条件,是由于安装 OpenEBS 时它有一个初始化的 Pod 需要在 master 节点启动并创建 PV 给 KubeSphere 的有状态应用挂载。因此,若您的 master 节点存在 Taint,建议在安装 OpenEBS 之前手动取消 Taint,待 OpenEBS 与 KubeSphere 安装完成后,再对 master 打上 Taint,以下步骤供参考:
- 例如本示例有一个 master 节点,节点名称即 master,可通过以下命令查看节点名称
kubectl get node -o wide
2. 确认 master 节点是否有 Taint,如下看到 master 节点有 Taint
kubectl describe node k8s-master | grep Taint
3. 去掉 master 节点的 Taint:
kubectl taint nodes k8s-master node-role.kubernetes.io/master:NoSchedule-
安装 OpenEBS
- 创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下:
kubectl create ns openebs
2. 通过 Helm 命令来安装 OpenEBS:
helm init
helm install --namespace openebs --name openebs stable/openebs --version 1.5.0
3. 安装 OpenEBS 后将自动创建 4 个 StorageClass,查看创建的 StorageClass:
kubectl get sc
需要等一会儿才能创建完 4 个 StorageClass, 小编等待了大约一分钟的时间。
4. 将 openebs-hostpath设置为 默认的 StorageClass:
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
5. 至此,OpenEBS 的 LocalPV 已作为默认的存储类型创建成功。可以通过命令 kubectl get pod -n openebs来查看 OpenEBS 相关 Pod 的状态,若 Pod 的状态都是 running,则说明存储安装成功
kubectl get pod -n openebs
在 Kubernetes 安装 KubeSphere(全部操作都在master节点上执行)
在 Kubernetes 安装 KubeSphere
官网地址: https://v2-1.docs.kubesphere.io/docs/zh-CN/installation/install-on-k8s/
完整安装 KubeSphere
若集群可用 CPU > 8 Core 且可用内存 > 16 G,可以使用以下命令完整安装 KubeSphere。
注意,应确保集群中有一个节点的可用内存大于 8 G。
提示:若您的服务器提示无法访问 GitHub,可将 kubesphere-minimal.yaml 或 kubesphere-complete-setup.yaml 文件保存到本地作为本地的静态文件,再参考上述命令进行安装
小编提前下载了 kubesphere-complete-setup.yaml 并上传至服务器(小编从gitee上下载的,地址为: https://gitee.com/learning1126/ks-installer/tree/master)
请根据自己的情况,选择下载kubesphere-minimal.yaml 或 kubesphere-complete-setup.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 pod --all-namespaces查看 KubeSphere 相关 namespace 下所有 Pod 状态是否为 Running。确认 Pod 都正常运行后,可使用 IP:30880访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd。
kubectl get pod --all-namespaces
- 页面访问
192.168.8.106:30880
输入 admin/P@88w0rd 登录即可