2017-10-25 6 views
1

k8esクラスタ内でkubernetics(k8es)コンテナとしてすべてのスパークジョブを起動しています。また、各ジョブでサービスを作成し、スパークUIのポート転送を行います(コンテナの4040はSvcPortにマップされます、31123)。 ノードの同じセットもYarnクラスタをホストしています。 コンテナのエントリコマンドは、クライアントモードでYarnにスパーク送信するための呼び出しです。スタンバイ名ノードでkuberneticsコンテナとして実行されているsparkのUIにアクセスする

ここで、スパークコンテナは、名前ノード(マスターまたはスタンバイ)のいずれかで起動することがあります。アクティブな名前ノードに割り当てられたVIPがあります。

アクティブな名前ノードでスパークコンテナを起動すると、スパークUIとそのすべてのタブはVIPを使用してどこからでも簡単にアクセスできます:SvcPort しかし、スパークコンテナがスタンバイ名ノードで起動されると、リクエストが500エラーで失敗する(VIPとして:SvcPortはActiveNamenode:8080にリダイレクトされ、ドライバは現在スタンバイネームノード上で実行されているためアクセスできません)

私は複数のサービス構成を試してみましたが、この設定は、コンテナがマスターノードにあるときにアクセス可能なUIを使用しようとしましたが、コンテナがスタンバイノードにあるときはUIにアクセスできません。

apiVersion: v1 
kind: Service 
metadata: 
    name: spark-svc 
    labels: 
    deployer: sample_app 
    app: spark-app 
spec: 
    selector: 
    app: spark-app 
    ports: 
    - port: 31123 
    protocol: TCP 
    targetPort: 4040 
    name: ui 
    externalIPs: 
    - 192.168.122.22 

このシナリオでは、誰でもplsが適切なk8esサービス設定を提案するかもしれません。 k8esクラスター内のジョブの負荷にk8esが対処するので、スパークコンテナーをマスター名ノードに制限したくない。

ご迷惑をおかけして申し訳ありません。

答えて

関連する問題