2017-04-06 3 views
0

私の質問は、私はAWSのEC2 上の1ノードクラスタを設定している程度PersistentVolumeClaim である私はプロビジョニングとしてkubernetes.io/host-pathを使用してストレージ・クラスを作成しようとしています。Kubernetes:動的なストレージプロビジョニングホスト・パスを使用して

ストレージ・クラスのためのYAMLファイルの内容を以下のように、PersistentVolumeClaimため

kind: StorageClass 
apiVersion: storage.k8s.io/v1beta1 
metadata: 
namespace: kube-system 
name: my-storage 
annotations: 
    storageclass.beta.kubernetes.io/is-default-class: "false" 
labels: 
    kubernetes.io/cluster-service: "true" 
provisioner: kubernetes.io/host-path 

YAMLファイルの内容は、次のよう

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
name: task-pv-claim 
annotations: 
    volume.beta.kubernetes.io/storage-class: my-storage 
spec: 
accessModes: 
    - ReadWriteOnce 
resources: 
    requests: 
    storage: 3Gi 

私はminikube上のストレージクラスとPVCを作成しようとしています、それは働いている。中には/ tmp/hostpath_volume私はAWSのEC2上の1つのノードクラスタ設定に同じようなことをしようとしています/ しかし、私はエラー

次それはminikubeに ボリュームを作成しているが取得しています

プロビジョニングの作成に失敗しました:ボリュームのプラグインでプロビジョニング」 kubernetes.io/host-pathは」無効になっている私は、PVが作成されていないとしても、塩ビタスク-PV-請求を記述kubectl を行う際に請求が状態

を保留しているので、私は、このエラーを見ることができます

kube-controller-managerのようなものが見つかりました --enable-dynamic-provisioning --enable-hostpath-provisionerはオプションで使用できますが、使用方法はわかりません。

+0

あなたSTORAGECLASSとPVCを再作成しますか?ホストパスプロビジョナーはクラスタ内のポッドとして実行されていますか? – jaxxstorm

+0

私はkubectlバージョン1.5.2を使用しています。私はあなたの2番目の質問を取得しませんでした。私はこのk8sとすべての初心者です。あなたはポッドとして走っている 'kubernetes.io/host-path'を意味しましたか? – Yudi

答えて

2

プロビジョナ自体を実行していない可能性があるので、実際にはhostpathディレクトリを作成する作業はありません。

を見てみましょうhere

これが機能する方法は、ホストパスプロビジョニングがkubernetesのAPIから読み込み、あなたは(あなたがやった)ストレージ・クラスとpersistentvolumeclaimを作成するための監視という点である(も行われます) 。

これらが存在する場合、プロダクター(ポッドとして実行中)はmkdirを実行してホストパスを作成します。

実行は次のとおりです。その後、

kubectl apply -f https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/docs/demo/hostpath-provisioner/pod.yaml 

そして、あなたが実行しているkubernetesのバージョンは何

+0

あなたのソリューションは完全に完璧なようです。あの先生に感謝します。しかし、私はあなたの解決策を実行中に問題に直面しています。私があなたから与えられたコマンドを実行しようとすると、ポッドは展開されましたが、 'ErrImagePull'ステータスを持っていました。 次に、https://hub.docker.com/r/jaxxstorm/hostpath-provisioner/tags/から画像を取得しようとしましたが、展開を試みましたが、「F0406 19:52:27.642967 7 hostpath-provisioner.go:125」に失敗しましたcreate config:クラスタ内の設定をロードできない場合は、KUBERNETES_SERVICE_HOSTとKUBERNETES_SERVICE_PORTを定義する必要があります。 " ここでお手伝いできますか? – Yudi

+0

デフォルトでは、kubernetesはトークンをマップしてAPIと話すことができますが、あなたのケースでは起こっていません。クラスタが正しく機能していないようです。私は新しい質問を開き、あなたのクラスタをどのくらい正確にブートストラップしたのかを詳しく説明します。 – jaxxstorm

+0

@Yudi私たちは余裕をもってチャットしました。 – jaxxstorm