Question de base: lorsque j'essaie d'utiliser kube-apiserver sur mon nœud maître, j'obtiens une erreur de commande introuvable. Comment puis-je installer/configurer kube-apiserver? Tout lien vers l'exemple vous aidera.
$ kube-apiserver --enable-admission-plugins DefaultStorageClass
-bash: kube-apiserver: command not found
Détails: Je suis nouveau sur Kubernetes et Docker et essayais de créer StatefulSet avec volumeClaimTemplates. Mon problème est que les PV automatiques ne sont pas créés et j'obtiens ce message dans le journal PVC: "contrôleur de volume persistant en attente de création d'un volume". Je ne sais pas si j'ai besoin de définir DefaultStorageClass et donc j'avais besoin de kube-apiserver pour le définir.
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
Voici le résultat en pvc:
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nfs Pending example-nfs 10h
Et obtenez la classe de stockage:
$ 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>
Comment puis-je résoudre ce problème (par exemple, les journaux expliquant pourquoi le stockage n'a pas été créé)?
Vous posez ici deux questions différentes, une sur la configuration de kube-apiserver, une sur le dépannage de votre StorageClass
.
Voici une réponse à votre première question:
kube-apiserver
s'exécute en tant que conteneur Docker sur votre nœud maître. Par conséquent, le binaire est dans le conteneur, pas sur votre système hôte. Il est démarré par le kubelet
du maître à partir d'un fichier situé dans /etc/kubernetes/manifests
. kubelet
regarde ce répertoire et démarrera tout pod défini ici comme "pods statiques".
Configurer kube-apiserver
arguments de ligne de commande que vous devez modifier /etc/kubernetes/manifests/kube-apiserver.yaml
sur votre maître.
Pour définir la classe de stockage "example-nfs" par défaut, vous devez exécuter la commande ci-dessous:
kubectl patch storageclass example-nfs -p '{"metadata":
{"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'