NniutendoK零S
- 已编辑
创建标准托管ACK集群
- v1.16.9-aliyun.1
- Docker 19.03.5
- Terway(根据需求可以替换为Flannel)
- 存储插件CSI
- 其他的诸如NAT,交换机,Ingress随需要设置就好
选择集群中使用的storageClass
NAS (优点是不用修改Kubesphere的requestVolume,但是需要事先创建)
云盘(ACK安装好后可直接使用,但是因为不允许创建小于2G的磁盘,所以我们需要修改Kubesphere中的VolumeSize为20Gi)
```
mysqlVolumeSize: 20Gi
minioVolumeSize: 20Gi
etcdVolumeSize: 20Gi
openldapVolumeSize: 20Gi
redisVolumSize: 20Gi
prometheusVolumeSize: 20Gi
elasticsearchMasterVolumeSize: 20Gi
elasticsearchDataVolumeSize: 20Gi
jenkinsVolumeSize: 20Gi
postgresqlVolumeSize: 20Gi
```
- 安装前需要确认集群有默认的 StorageClass。举个例子,如下将集群的 openebs-hostpath 设置为默认的 StorageClass(实际安装时可根据您自己集群的存储类型进行设置):
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
storageclass.storage.k8s.io/openebs-hostpath patched
- 如果不把某个SC设置为默认,那需要在 Kubesphere 的安装 yaml 文件中指明,假设 openebs-hostpath 是集群已有的一种存储类型。
```
persistence:
storageClass: "openebs-hostpath"
```
- 安装helm2.16.3
- 客户端不赘述
- RBAC
```yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
```
- Helm Init
```sh
helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.3
```
- 安装 Kubesphere,请参考 Install KubeSphere on existing K8s
- 部署刚才修改过的yaml文件
```sh
kubectl apply -f kubesphere-minimal.yaml
```
- 重头戏,请特别注意 (自建集群没有出现以下问题)
- 不管在安装前测试了多少次SC,PVC都可以正常绑定。但是一旦开始安装Kubesphere,PVC就会慢慢失效,逐渐Pending。这时候你会发现,你用之前测试过多少次的pvc.yaml创建也一样会pending
```
deployment-nas-1-755db5846b-jc87t 0/1 Pending 0 5m23s
deployment-nas-1-7f86d9449f-c59tv 0/1 Pending 0 9m14s
```
- 修改clusterrolebinding
```yaml
kubectl edit clusterrolebinding admin
#行位加入
- kind: ServiceAccount
name: admin
namespace: kube-system
```
- 静待安装完毕