2017-10-16 6 views
0

kubernetesクラスタ内の同じポートで複数のサービスを実行していますか。そのようなser1、ser2、ser3はすべて同じポート8080を使用しています。<serv-name>:8080としてポッド内からこれらのサービスにアクセスできますが、ホストノードの1つ、つまりコンテナの外側から同じ方法でアクセスできますノード?外部ポッドからクラスタ内にあるkuberneticsサービスにアクセスする

私は周りを見てみましたが、関連するディスカッションは見つかりませんでした。誰かが示唆している場合はPls。乾燥する

私のサンプル設定

apiVersion: v1 
kind: Service 
metadata: 
    name: svc1 
    namespace: sample 
    labels: 
    app: svc1 
spec: 
    selector: 
    app: app1 
    ports: 
    - name: psvc1 
    port: 8080 
    targetPort: 9090 
    protocol: TCP 
+0

サービスをclusterIPタイプで公開しようとしましたか?これにより、指定したポートで呼び出すことができる仮想的なクラスタ全体のIPが得られるはずです。 –

+0

ありがとう@DriesDeRydt。はい、クラスタIP経由でアクセスできます。しかし、サービスが起動または再開されたときに、同じclusterIPを使用できるとは限りません。そのような仮想IPを、より適切にはある範囲の仮想IPを予約するようにKubernetesに指示する方法はありますか?ロードバランサでこれらのclusterIPを設定する必要があります。 –

+0

はい、あなたはIPを指定することができます:https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address –

答えて

1

我々はノードからサービスにアクセスすることができ、クラスタIPを使用して、言いました。

kubectl run nginx --image=nginx --port=80 --expose=true 

kubectl get svc 
NAME   TYPE  CLUSTER-IP  EXTERNAL-IP PORT(S) AGE 
kubernetes ClusterIP 10.96.0.1  <none>  443/TCP 9d 
nginx  ClusterIP 10.103.206.246 <none>  80/TCP 52m 


# curl 10.103.206.246:80 
<!DOCTYPE html> 
<html> 
<head> 
<title>Welcome to nginx!</title> 
<style> 
関連する問題