web-dev-qa-db-ja.com

kube-apiserverはどこにありますか

基本的な質問:マスターノードで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>

この問題をトラブルシューティングするにはどうすればよいですか(例:ストレージが作成されなかった理由のログ)?

13
raj_arni

ここでは、kube-apiserverの構成に関する質問と、StorageClassのトラブルシューティングに関する質問の2つの質問をしています。

最初の質問に対する答えは次のとおりです。

kube-apiserverは、マスターノードでDockerコンテナーとして実行されています。したがって、バイナリはwithinコンテナであり、ホストシステムではありません。 /etc/kubernetes/manifestsにあるファイルからマスターのkubeletによって開始されます。 kubeletはこのディレクトリを監視しており、ここで「静的ポッド」として定義されているポッドを起動します。

kube-apiserverコマンドライン引数を設定するには、マスターの/etc/kubernetes/manifests/kube-apiserver.yamlを変更する必要があります。

24
embik

ストレージクラスを「example-nfs」をデフォルトにするには、以下のコマンドを実行する必要があります。

kubectl patch storageclass example-nfs -p '{"metadata": 
  {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
0
Ajit Singh