いくつかの方法は、ポートサービスを公開kubernetes

いくつかの方法は、ポートサービスを公開kubernetes

あなたは、外部IPアドレス上で公開されたサービスにしたい場合。Kubernetesは、次のように詳細に、4実装をサポートしています。

1:アクセスのためのクラスタ内:CLUSTERIP

クラスタ内のサービスにアクセスするために非常に便利な、内部クラスタのプライベートIPをCLUSTERIP、クラスタが直接CLUSTERIPを通じてサービスにアクセスするためのkuberentesのデフォルトの方法ですが、それはまたのServiceNameによって直接アクセスすることができます。クラスタ外ではアクセスできません。

2:クラスタの外部アクセス:NodePort

NodePortはkubenretesで広く使われているサービスの早期露出モードがあります。このタイプのサービスのデフォルトKubernetes下CLUSTERIPに直接アクセスすることができ、外部のサービスを取得するには、CLUSTERIPを持つことになり、このサービスは、IPは、クラスタ内でアクセスすることができ、使用されている、あなたは、サービスタイプがnodePortで変更する必要があります。マッピングサービスリスニングポート・ノードがノードに。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:alpine
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30004
      protocol: TCP
  selector:
    name: nginx

作ります

kubectl create -f nginx-ds.yaml

アクセスのテスト

クラスタに加えて、ノードは、任意のノードのIPすることができます。クラスタは、サービスにアクセスすることができますnodeport

3:ロードバランサ

LoadBlancerサービスは、クラウドプラットフォームとkubernetesの深さのコンポーネントであり、サービスを使用している場合LoadBlancerサービスは、外部のサービスを公開するロードバランサを作成するための基盤となるクラウドプラットフォームへのアプリケーション上で、実際には、暴露; LoadBlancerサービス現在サポートされているクラウドプラットフォームは、比較的よくなっています外国GCE、DigitalOceanなど国内アリクラウド、プライベートクラウドOpenStackは、原因の深さにLoadBlancerサービスは、クラウドプラットフォームを組み合わせて、あなただけのいくつかのクラウドプラットフォームを使用することができます。

4:イングレス

イングレスはkubernetes1.1以降に導入リソースタイプのバージョンです。イングレス・コントローラは、入口、コントローラは、利用可能なプラグインの形であり、入口リソースを作成するために展開されなければなりません。

イングレスは、より広く使用されている:、nginxのとtraefik個人的にtraefikを使用することをお勧めします。

Traefikは、使用するように設定しました:

https://blog.51cto.com/michaelkang/2429929

おすすめ

転載: blog.51cto.com/michaelkang/2429935