Где находится кубик-прицепщик
Базовый вопрос: когда я пытаюсь использовать kube-apiserver на моем основном узле, я получаю команду не найденной ошибкой. Как я могу установить/настроить kube-apiserver? Любая ссылка на пример поможет.
$ kube-apiserver --enable-admission-plugins DefaultStorageClass
-bash: kube-apiserver: command not found
Подробности: Я новичок в Kubernetes и Docker и пытался создать StatefulSet с помощью volumeClaimTemplates. Моя проблема заключается в том, что автоматические 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>
Как устранить эту проблему (например, журналы, почему хранилище не было создано)?
Ответы
Ответ 1
Здесь вы задаете два разных вопроса: конфигурацию kube-apiserver, одну из которых касается устранения неполадок вашего StorageClass
.
Вот ответ на ваш первый вопрос:
kube-apiserver
работает как контейнер Docker на вашем главном узле. Следовательно, двоичный файл находится внутри контейнера, а не вашей хост-системы. Он запускается мастер- kubelet
из файла, расположенного в /etc/kubernetes/manifests
. kubelet
наблюдает за этим каталогом и запустит любой Pod, определенный здесь как "статические контейнеры".
Чтобы настроить kube-apiserver
командной строки kube-apiserver
вам необходимо изменить /etc/kubernetes/manifests/kube-apiserver.yaml
на вашем хозяине.
Ответ 2
Чтобы сделать класс хранилища "example-nfs" по умолчанию, вам нужно выполнить следующую команду:
kubectl patch storageclass example-nfs -p '{"metadata":
{"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'