Kubernetes-サービス
サービスは、ポッドの論理セットとして定義できます。これは、ポッドにアクセスできる単一のIPアドレスとDNS名を提供するポッド上部の抽象化として定義できます。Serviceを使用すると、負荷分散構成の管理が非常に簡単になります。ポッドを非常に簡単にスケーリングするのに役立ちます。
サービスはKubernetesのRESTオブジェクトであり、その定義をKubernetesマスターのKubernetes apiServerに投稿して、新しいインスタンスを作成できます。
セレクターなしのサービス
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
- port: 8080
targetPort: 31999
上記の構成では、Tutorial_point_serviceという名前のサービスが作成されます。
セレクター付きのサービス構成ファイル
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
selector:
application: "My Application" -------------------> (Selector)
ports:
- port: 8080
targetPort: 31999
この例では、セレクターがあります。したがって、トラフィックを転送するには、エンドポイントを手動で作成する必要があります。
apiVersion: v1
kind: Endpoints
metadata:
name: Tutorial_point_service
subnets:
address:
"ip": "192.168.168.40" -------------------> (Selector)
ports:
- port: 8080
上記のコードでは、「192.168.168.40:8080」として定義されたエンドポイントにトラフィックをルーティングするエンドポイントを作成しました。
マルチポートサービスの作成
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
selector:
application: “My Application” -------------------> (Selector)
ClusterIP: 10.3.0.12
ports:
-name: http
protocol: TCP
port: 80
targetPort: 31999
-name:https
Protocol: TCP
Port: 443
targetPort: 31998
サービスの種類
ClusterIP−これは、クラスター内のサービスを制限するのに役立ちます。定義されたKubernetesクラスター内のサービスを公開します。
spec:
type: NodePort
ports:
- port: 8080
nodePort: 31999
name: NodeportService
NodePort−デプロイされたノードの静的ポートでサービスを公開します。AClusterIP サービス、 NodePortサービスはルーティングされ、自動的に作成されます。このサービスには、クラスターの外部からNodeIP:nodePort。
spec:
ports:
- port: 8080
nodePort: 31999
name: NodeportService
clusterIP: 10.20.30.40
Load Balancer −クラウドプロバイダーのロードバランサーを使用します。 NodePort そして ClusterIP 外部ロードバランサーがルーティングするサービスが自動的に作成されます。
フルサービス yamlノードポートとしてサービスタイプを持つファイル。自分で作成してみてください。
apiVersion: v1
kind: Service
metadata:
name: appname
labels:
k8s-app: appname
spec:
type: NodePort
ports:
- port: 8080
nodePort: 31999
name: omninginx
selector:
k8s-app: appname
component: nginx
env: env_name