基本的な質問:マスターノードで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はボリュームの作成を待機しています」。 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
のトラブルシューティングに関する質問の2つの質問をしています。
最初の質問に対する答えは次のとおりです。
kube-apiserver
は、マスターノードでDockerコンテナーとして実行されています。したがって、バイナリはwithinコンテナであり、ホストシステムではありません。 /etc/kubernetes/manifests
にあるファイルからマスターのkubelet
によって開始されます。 kubelet
はこのディレクトリを監視しており、ここで「静的ポッド」として定義されているポッドを起動します。
kube-apiserver
コマンドライン引数を設定するには、マスターの/etc/kubernetes/manifests/kube-apiserver.yaml
を変更する必要があります。
ストレージクラスを「example-nfs」をデフォルトにするには、以下のコマンドを実行する必要があります。
kubectl patch storageclass example-nfs -p '{"metadata":
{"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'