I’m trying to demo installing a CSI driver for a customer and decided to go with the AWS EBS driver. The first step is:
Enable flag --allow-privileged=true for kube-apiserver
Enable kube-apiserver feature gates --feature-gates=CSINodeInfo=true,CSIDriverRegistry=true,CSIBlockVolume=true,VolumeSnapshotDataSource=true
Source: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/README.md
What flags and feature gates are set when K8S clusters are provisioned?
You can find out by running the following on the master node:
$ ps aux | grep apiserver
... kube-apiserver --allow-privileged=true --audit-log-maxage=1 ...
Here you can see the flags that are set (in my case I needed --allow-privileged=true
).
Similarly, you can look for feature-gates:
$ ps aux | grep apiserver | grep feature-gates
[empty response]
It appears that no feature gates are explicitly enabled on my cluster, so I need to check what is enabled by default. I can do that by looking here. In the table, I can see that the feature gate CSINodeInfo is enabled by default and is GA since 1.17:
I checked all the required features and they were enabled by default and either Beta or GA on my version of K8S (1.17).