ヘルムVolumeBindingエラーでエルクスタックをkubernetesにデプロイする

Aug 24 2020

このチャートを使用して、helmを使用してkubernetesクラスターにelkスタックをデプロイしようとしています。起動すると

helm install elk-stack stable/elastic-stack

次のメッセージが表示されます。

名前:エルクスタック
最終展開:2020年8月24日月曜日07:30:31
名前空間:デフォルト
ステータス:展開済み
改訂:1
ノート:
Elasticsearchクラスターと関連するエクストラがインストールされました。
Kibanaにアクセスできます:

  *クラスター内のポート9200の次のDNS名:

    elk-stack-elastic-stack.default.svc.cluster.local

  *クラスターの外部から、同じシェルで次のコマンドを実行します。

    エクスポートPOD_NAME =$(kubectl get pods --namespace default -l "app=elastic-stack,release=elk-stack" -o jsonpath="{.items[0].metadata.name}")
    echo "Visit http://127.0.0.1:5601 to use Kibana"
    kubectl port-forward --namespace default $POD_NAME 5601:5601

しかし、私が走るとき

kubectl getpods

結果は次のとおりです。

NAME READY STATUS RESTARTS AGE
elk-stack-elasticsearch-client-7fcfc7b858-5f7fw0 / 1実行中012m
elk-stack-elasticsearch-client-7fcfc7b858-zdkwd0 / 1実行中112m
elk-stack-elasticsearch-data-00 / 1保留中012m
elk-stack-elasticsearch-master-00 / 1保留中012m
elk-stack-kibana-cb7d9ccbf-msw951 / 1実行中012m
elk-stack-logstash-00 / 1保留中012m

kubectl describe podsコマンドを使用すると、elasticsearchポッドの問題は次のとおりです。

 警告FailedScheduling6m29s default-schedulerがポッド「elk-stack-elasticsearch-data-0」の「VolumeBinding」フィルタープラグインを実行しています:ポッドにバインドされていない即時のPersistentVolumeClaimsがあります

およびlogstashポッドの場合:

警告FailedScheduling7m53s default-schedulerがポッド「elk-stack-logstash-0」の「VolumeBinding」フィルタープラグインを実行しています:ポッドにはバインドされていない即時のPersistentVolumeClaimsがあります

の出力kubectl get pv,pvc,sc -A

名前容量アクセスモード再請求ポリシーステータス請求ストレージクラス理由年齢
永続ボリューム/ elasticsearch-データ10GiRWO保持境界デフォルト/ elasticsearch-データマニュアル16d

NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
デフォルトのpersistentvolumeclaim / claim1保留中の遅い64m
デフォルトのpersistentvolumeclaim / data-elk-stack-elasticsearch-data-0保留中120m
デフォルトのpersistentvolumeclaim / data-elk-stack-elasticsearch-master-0保留中120m
デフォルトのpersistentvolumeclaim / data-elk-stack-logstash-0保留中120m
デフォルトのpersistentvolumeclaim / elasticsearch-dataバインドされたelasticsearch-data10GiRWOマニュアル16d
デフォルトのpersistentvolumeclaim / elasticsearch-data-elasticsearch-data-0保留中の17d
デフォルトのpersistentvolumeclaim / elasticsearch-data-elasticsearch-data-1保留中の17d
デフォルトのpersistentvolumeclaim / elasticsearch-data-quickstart-es-default-0保留中の16d
デフォルトのpersistentvolumeclaim / elasticsearch-master-elasticsearch-master-0保留中の17d
デフォルトのpersistentvolumeclaim / elasticsearch-master-elasticsearch-master-1保留中の17d
デフォルトのpersistentvolumeclaim / elasticsearch-master-elasticsearch-master-2保留中の16d

NAMESPACE NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
            storageclass.storage.k8s.io/slow(デフォルト)kubernetes.io/gce-pd削除即時false 66m

ストレージクラスslowと永続ボリュームの主張claim1は私の実験です。私はそれらをkubectl createyamlファイルを使用して作成し、その他はhelmによって自動的に作成されます(私は思います)。

の出力kubectl get pvc data-elk-stack-elasticsearch-master-0 -o yaml

apiVersion:v1
種類:PersistentVolumeClaim
メタデータ:
  CreationTimestamp: "2020-08-24T07:30:38Z"
  ファイナライザー:
  -kubernetes.io/pvc-protection
  ラベル:
    アプリ:elasticsearch
    リリース:エルクスタック
  managedFields:
  -apiVersion:v1
    fieldsType:FieldsV1
    fieldsV1:
      f:メタデータ:
        f:ラベル:
          。:{}
          f:app:{}
          f:リリース:{}
      f:spec:
        f:accessModes:{}
        f:リソース:
          f:リクエスト:
            。:{}
            f:storage:{}
        f:volumeMode:{}
      f:ステータス:
        f:フェーズ:{}
    マネージャー:kube-controller-manager
    操作:更新
    時間:「2020-08-24T07:30:38Z」
  名前:data-elk-stack-elasticsearch-master-0
  名前空間:デフォルト
  resourceVersion: "201123"
  selfLink:/ api / v1 / namespaces / default / persistentvolumeclaims / data-elk-stack-elasticsearch-master-0
  uid:de58f769-f9a7-41ad-a449-ef16d4b72bc6
スペック:
  accessModes:
  -ReadWriteOnce
  リソース:
    リクエスト:
      ストレージ:4Gi
  volumeMode:ファイルシステム
状態:
  フェーズ:保留中

誰かがこの問題を解決するのを手伝ってくれませんか?前もって感謝します。

回答

2 ArghyaSadhu Aug 24 2020 at 20:35

ポッドが保留中の理由は、対応するPVが作成されていないため、PVCが保留中です。

data-elk-stack-elasticsearch-master-0
data-elk-stack-logstash-0
data-elk-stack-elasticsearch-data-0

これはローカル開発用であると述べたので、PVにhostPathボリュームを使用できます。したがって、以下のサンプルPVを使用して、保留中のPVCごとにPVを作成します。したがって、合計3つのPVを作成します。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: elk-master
  labels:
    type: local
spec:
  capacity:
    storage: 4Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: elk-logstash
  labels:
    type: local
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: elk-data
  labels:
    type: local
spec:
  capacity:
    storage: 30Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"