k8s kubesphere安装在k8s中的基础环境准备(前提条件)
先决条件
只要您的 Kubernetes 集群满足以下先决条件,不仅可以将 KubeSphere 安装在具有预配置的 Kubernetes 的虚拟机和裸机上,而且还支持在云托管和本地现有 Kubernetes 群集上进行安装。
- Kubernetes 版本:
1.15.x, 1.16.x, 1.17.x, 1.18.x
。 - 可用 CPU > 1 核; 内存 > 2 G。
- Kubernetes 集群已配置***默认***存储类型(StorageClass); 请使用
kubectl get sc
命令进行确认。 - 当使用
--cluster-signing-cert-file
和--cluster-signing-key-file
参数启动集群时,kube-apiserver 将启用 CSR 签名功能。请参阅 RKE 安装问题。
预检查
通过在集群节点中运行
kubectl version
,确保您的 Kubernetes 版本在 KuberSphere 兼容范围内。输出类似如下所示:$ kubectl version
Client Version: version.Info{
Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{
Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
备注
注意
Server Version
行,如果 GitVersion 显示的是旧版本,则需要先升级 Kubernetes,请参阅将 kubeadm 集群从 v1.14 升级到 v1.15。检查集群中的可用资源是否满足最低要求。
$ free -g
total used free shared buff/cache available
Mem: 16 4 10 0 3 2
Swap: 0 0 0
检查集群中是否有***默认***的存储类,准备就绪的默认存储类是 KubeSphere 安装的先决条件。
$ kubectl get sc
NAME PROVISIONER AGE
glusterfs (default) kubernetes.io/glusterfs 3d4h
cd /home/kubesphere-install/nfs-provisioner
[root@m-1 nfs-provisioner]# ll
总用量 8
-rw-r--r--. 1 root root 2320 1月 23 00:57 nfs-rbac.yaml
-rw-r--r--. 1 root root 129 1月 23 01:01 storageclass-nfs.yaml
使用nfs作为默认的存储类。
nfs-rbac.yaml
[root@m-1 nfs-provisioner]# cat nfs-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-provisioner
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-provisioner-runner
rules:- apiGroups: [“”]
resources: [“persistentvolumes”]
verbs: [“get”, “list”, “watch”, “create”, “delete”] - apiGroups: [“”]
resources: [“persistentvolumeclaims”]
verbs: [“get”, “list”, “watch”, “update”] - apiGroups: [“storage.k8s.io”]
resources: [“storageclasses”]
verbs: [“get”, “list”, “watch”] - apiGroups: [“”]
resources: [“events”]
verbs: [“watch”, “create”, “update”, “patch”] - apiGroups: [“”]
resources: [“services”, “endpoints”]
verbs: [“get”,”create”,”list”, “watch”,”update”] - apiGroups: [“extensions”]
resources: [“podsecuritypolicies”]
resourceNames: [“nfs-provisioner”]
verbs: [“use”]
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: run-nfs-provisioner
subjects:- kind: ServiceAccount
name: nfs-provisioner
namespace: default
roleRef:
kind: ClusterRole
name: nfs-provisioner-runner
apiGroup: rbac.authorization.k8s.io
vi nfs-deployment.yaml;创建nfs-client的授权
kind: Deployment
apiVersion: apps/v1
metadata:
name: nfs-client-provisioner
spec:
replicas: 1
strategy:type: Recreate
selector:
matchLabels:
app: nfs-client-provisioner
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccount: nfs-provisioner
containers:
- name: nfs-client-provisioner
image: 192.168.145.28:1603/kubesphere/nfs-client-provisioner:v3.1.0-k8s1.11
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME #供应者的名字
value: storage.pri/nfs #名字虽然可以随便起,以后引用要一致
- name: NFS_SERVER
value: 192.168.116.101
- name: NFS_PATH
value: /nfs/data
volumes:
- name: nfs-client-root
nfs:
server: 192.168.116.101
path: /nfs/data
- apiGroups: [“”]
storageclass-nfs.yaml
[root@m-1 nfs-provisioner]# cat storageclass-nfs.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: storage-nfs
provisioner: storage.pri/nfs
reclaimPolicy: Delete
如果您的 Kubernetes 集群环境满足上述所有要求,那么您就可以在现有 Kubernetes 集群上部署 KubeSphere 了。
有关更多信息,请参见概述。
本文参考链接:
https://kubesphere.com.cn/docs/installing-on-kubernetes/introduction/prerequisites/
https://www.yuque.com/leifengyang/kubesphere/hxzk3t#JtnJN
还没有评论,来说两句吧...