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