基本问题:当我尝试在我的主节点上使用 kube-apiserver 时,我收到 command not found 错误。如何安装/配置 kube-apiserver?任何指向示例的链接都会有所帮助。
$ kube-apiserver --enable-admission-plugins DefaultStorageClass
-bash: kube-apiserver: command not found
详细信息:我是 Kubernetes 和 Docker 的新手,正在尝试使用 volumeClaimTemplates 创建 StatefulSet。我的问题是未创建自动 PV,并且我在 PVC 日志中收到此消息:“persistentvolume-controller waiting for a volume to be created”。我不确定是否需要定义 DefaultStorageClass,因此需要 kube-apiserver 来定义它。
Name: nfs
Namespace: default
StorageClass: example-nfs
Status: Pending
Volume:
Labels: <none>
Annotations: volume.beta.kubernetes.io/storage-provisioner=example.com/nfs
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 3m (x2401 over 10h) persistentvolume-controller waiting for a volume to be created, either by external provisioner "example.com/nfs" or manually created by system administrator
这是获取 pvc 的结果:
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nfs Pending example-nfs 10h
并获取 storageclass:
$ kubectl describe storageclass example-nfs
Name: example-nfs
IsDefaultClass: No
Annotations: <none>
Provisioner: example.com/nfs
Parameters: <none>
AllowVolumeExpansion: <unset>
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: Immediate
Events: <none>
如何解决此问题(例如,有关未创建存储原因的日志)?
最佳答案
您在这里问了两个不同的问题,一个是关于 kube-apiserver 配置的,一个是关于排除 StorageClass
的问题。
这是您第一个问题的答案:
kube-apiserver
在您的主节点上作为 Docker 容器运行。因此,二进制文件在容器中,而不是在您的主机系统上。它由 master 的 kubelet
从位于 /etc/kubernetes/manifests
的文件中启动。 kubelet
正在监视此目录,并将启动此处定义为“静态 pod”的任何 Pod。
要配置 kube-apiserver
命令行参数,您需要在 master 上修改 /etc/kubernetes/manifests/kube-apiserver.yaml
。
关于docker - kube-apiserver 位于哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352621/