いくつかの方法は、ポートサービスを公開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を使用することをお勧めします。