2017-03-23 3 views
3

さまざまなPersistentVolumeを介して他のポッドにアクセスしたいNFSサーバーを実行しているPodを定義するGoogle Container Engineでkubernetesクラスターを実行しています。DNSまたは静的なClusterIP経由でPersistentVolumeのNFSサーバーを設定する

NFSサービスが同じクラスタ内にある場合は、どのように構成するのが最適ですか?

kubernetesポッドを起動しているノードがDNSとして使用するように設定されていないため、さまざまなドキュメントによると、kive-dnsに依存することができませんでした。

ので、これは問題外である(そして実際には動作しません - IVEは、様々な異なるホスト名/ FQDNで、それをテスト...)

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: xxx-persistent-storage 
    labels: 
    app: xxx 
spec: 
    capacity: 
    storage: 10Gi 
    nfs: 
    path: "/exports/xxx" 
    server: nfs-service.default.svc.cluster.local # <-- does not work 

私は、NFSサーバを起動して、kubectl describe svc nfs-serviceを経由してそのCLUSTERIPを確認することができますその後、PVのためにそのエンドポイント-IP(この作品)ハードコーディング:

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: xxx-persistent-storage 
    labels: 
    app: xxx 
spec: 
    capacity: 
    storage: 10Gi 
    nfs: 
    path: "/exports/xxx" 
    server: 10.2.1.7 # <-- does work 

をしかし、これは間違って感じている - とすぐに私はNFS-サービスの病気は、新しいIPを取得して再作成する必要があるとして、私はすべて再構成する必要がそれに基づいたPV。

  • ここでベストプラクティスは何ですか?私はそれが本当に正常なことだと思っていたので、私はそれのための例を見つけられませんでした驚いた - isntそれ?

  • サービスの静的IPの種類を設定することができます。そのため、NFSサービスに対して常に同じIPを使用することができますか?

答えて

2

あなたは正しい方向にあります。サービスが静的IPを使用していることを確認するには、サービスのspec:セクションの下にclusterIP: 1.2.3.3を追加してください。正規のexampleから

:将来的には

、我々はサービス名を使用して一緒にこれらを結ぶことができるでしょうが、今のところ、あなたはIPをハードコーディングする必要があります。

+0

ありがとうございます - 私は何か間違ったことを望んでいた、より良い解決策があります。ハードコードされたIPのアイデアのように、私は簡単にprodとテストの間の定義ファイルを再利用したい場合は – DanielW

+0

私は解決策が気に入らない。 DNS名は本当に良いでしょう... –

関連する問題