基本问题:当我尝试在主节点上使用kube-apiserver时,出现命令未找到错误。如何安装/配置kube- apiserver?任何指向示例的链接都将有所帮助。
$ kube-apiserver --enable-admission-plugins DefaultStorageClass -bash: kube-apiserver: command not found
详细信息:我是Kubernetes和Docker的新手,并试图使用volumeClaimTemplates创建StatefulSet。我的问题是未创建自动PV,我在PVC日志中收到此消息:“ persistentvolume-controller等待创建卷”。我不确定是否需要定义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。
StorageClass
这是您第一个问题的答案:
kube-apiserver在您的主节点上作为Docker容器运行。因此,二进制文件 位于 容器内,而不位于主机系统上。它由主机kubelet从位于的文件启动/etc/kubernetes/manifests。kubelet正在观看此目录,并将启动此处定义为“静态广告连播”的任何广告连播。
kube-apiserver
kubelet
/etc/kubernetes/manifests
要配置kube-apiserver命令行参数,您需要/etc/kubernetes/manifests/kube- apiserver.yaml在主机上进行修改。
/etc/kubernetes/manifests/kube- apiserver.yaml