web-dev-qa-db-ja.com

Google Container Engineで2つのポートを公開する

2つのポートが公開されているGoogle Container Engineでポッドを作成することは可能ですか?ポート8080は着信コンテンツをリッスンし、ポート80はこのコンテンツをクライアントに配信しますか?

ポッドを作成する次のコマンドは、Googleによって例として提供されています。

kubectl run hello-node --image=gcr.io/${PROJECT_ID}/hello-node --port=8080

リスニングポートを定義できないようで、2つ目の「--port =」スイッチを追加すると、1つのポートしか表示されません。 2番目のポートを公開する方法はありますか、それともコンテナごとに1つのポートに制限されていますか?

13
cute_marmalade

コマンドラインから、-overridesオプションを使用して複数のポートを指定することができます。

この例では、ポート80と8080の両方を公開しています。

    export APP_NAME=app-hello
    export IMAGE=gcr.io/google-samples/hello-app:1.0
    kubectl run $APP_NAME \
                --image=$IMAGE \
                --overrides='{"spec": {"template":  {"spec": {"containers": [{"name": "'$APP_NAME'", "image": "'$IMAGE'",
 "ports": [{"containerPort": 8080, "protocol": "TCP"}, {"containerPort": 80, "protocol": "TCP"}]}]}}}}'
1
Drew

ヘルムを介して必要な場合は、次のように実現できます。

deployment.yaml

        ports:
        - containerPort: {{ .Values.containerport1 }}
          #name: containerport1
        - containerPort: {{ .Values.containerport2 }}
          #name: containerport2
        - containerPort: {{ .Values.containerport3 }}
          #name: containerport3

サービスファイルにはポート名が必要です。そうでない場合、レンダリングエラーが発生します。

service.yaml

  ports:
  - name: containerport1
    protocol: TCP
    port: {{ .Values.exposedport1 }}
    targetPort: {{ .Values.containerport1 }}
  - name: containerport2
    protocol: TCP
    port: {{ .Values.exposedport2 }}
    targetPort: {{ .Values.containerport2 }}
  - name: containerport3
    protocol: TCP
    port: {{ .Values.exposedport3 }}
    targetPort: {{ .Values.containerport3 }}

値は、ヘルムチャートのインストール中に--setパラメーターを使用して設定できます。

values.yaml

containerport1: 8001
containerport2: 8002
containerport3: 8003
exposedport1: 8004
exposedport2: 8005
exposedport3: 8006
1
redzack

Kubernetesはターゲットポートをサポートしています。

kubectl expose deployment example --type=LoadBalancer --port 8080 --target-port 80

0

Kubernetesを使用した別の回答で指摘されているように、ターゲティングだけでなく複数のポートも使用できます。

kubectl expose deployment example --type=LoadBalancer --port 8080,8081 --target-port 80
0
NotJohn