Kubernetes、OpenShift、Tanzu安装华为CSI
安装步骤
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录集群的任意master节点。
将Kubernetes CSI组件包中的"helm"目录拷贝到master节点的任意目录下。Helm工具路径请参见表 软件包组件描述。
进入到helm/esdk的工作目录下。
cd helm/esdk
准备values.yaml文件,华为CSI已经在软件包的helm/esdk目录下提供了values.yaml模板文件,您也可以根据Helm values.yaml参数说明修改参数对华为CSI进行定制。
安装前配置:
- 若容器平台为Kubernetes,可跳过该步骤。
- 若容器平台为Openshift,请根据OpenShift平台安装配置进行配置。
- 若容器平台为Tanzu,请根据Tanzu平台安装配置进行配置。
执行命令,更新存储后端CRD
kubectl apply -f ./crds/backend/
(可选) 请务必按照检查卷快照依赖组件章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考表 controller配置项说明。
kubectl apply -f ./crds/snapshot-crds/ --validate=false
执行如下命令安装华为CSI。其中,helm-huawei-csi为自定义的Helm Chart名称,./表示使用当前目录下的Helm工程,huawei-csi为自定义的Helm Chart命名空间。
helm install helm-huawei-csi ./ -n huawei-csi --create-namespace
命令执行结果如下:
NAME: helm-huawei-csi LAST DEPLOYED: Wed Jun 8 11:50:28 2022 NAMESPACE: huawei-csi STATUS: deployed REVISION: 1 TEST SUITE: None
完成huawei-csi服务部署后,可执行如下命令检查服务是否启动:
kubectl get pod -n huawei-csi
命令结果示例如下,Pod状态为“Running“则安装成功。
NAME READY STATUS RESTARTS AGE huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m huawei-csi-node-g6f4k 3/3 Running 0 20m huawei-csi-node-tqs87 3/3 Running 0 20m
OpenShift平台安装配置
OpenShift平台请根据以下命令创建SecurityContextConstraints资源。
执行命令,编辑helm_scc.yaml文件。
vi helm_scc.yaml
修改helm_scc.yaml文件。其中,下列回显中huawei-csi是指创建的命名空间,请根据实际情况填写。
apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: name: helm-scc allowHostDirVolumePlugin: true allowHostIPC: true allowHostNetwork: true allowHostPID: true allowHostPorts: true allowPrivilegeEscalation: true allowPrivilegedContainer: true defaultAddCapabilities: - SYS_ADMIN runAsUser: type: RunAsAny seLinuxContext: type: RunAsAny fsGroup: type: RunAsAny users: - system:serviceaccount:huawei-csi:huawei-csi-controller - system:serviceaccount:huawei-csi:huawei-csi-node
执行命令,创建SecurityContextConstraints。
oc create -f helm_scc.yaml
Tanzu平台安装配置
Tanzu平台请执行以下命令配置kubelet安装目录。
进入到安装包的helm/esdk目录下,执行命令打开配置文件,修改后保存。安装包目录请参见表 软件包组件描述。
vi values.yaml
修改kubeletConfigDir参数如下:
# Specify kubelet config dir path. # kubernetes and openshift is usually /var/lib/kubelet # Tanzu is usually /var/vcap/data/kubelet # CCE is usually /mnt/paas/kubernetes/kubelet kubeletConfigDir: /var/vcap/data/kubelet
Tanzu平台TKGI 1.16版本及以下请执行以下命令配置RBAC权限
执行命令, 创建rbac.yaml文件。
vi rbac.yaml
粘贴如下内容至rbac.yaml,保存并退出:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: huawei-csi-psp-role rules: - apiGroups: ['policy'] resources: ['podsecuritypolicies'] verbs: ['use'] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: huawei-csi-psp-role-cfg roleRef: kind: ClusterRole name: huawei-csi-psp-role apiGroup: rbac.authorization.k8s.io subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:serviceaccounts:huawei-csi - kind: Group apiGroup: rbac.authorization.k8s.io name: system:serviceaccounts:default
执行命令,创建RBAC权限。
kubectl create -f rbac.yaml