技術共有

k8s で公開されるサービスの種類と使用法

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. 説明
Kubernetes では、サービスを外部トラフィックに公開するさまざまな方法がいくつかあります。これらのモードは、サービスの spec.type フィールドを定義することによって決定されます。
2. 詳しい説明
1. クラスターIP
定義: デフォルトのタイプ。サービスはクラスター内でのみアクセスできます。
機能: クラスターの内部 IP アドレスを通じてサービスを公開します。
例:

spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080
  • 1
  • 2
  • 3
  • 4
  • 5

2.ノードポート
定義: 各ノードで上位ポート (通常は 30000 ~ 32767) を開き、外部トラフィックがサービスにアクセスできるようにします。
機能: 任意のノードの IP アドレスとノードポートを介してサービスにアクセスします。
例:

spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30007
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3. ロードバランサー

定義: クラウド プラットフォームによって提供されるロード バランサーは、サービスに外部 IP アドレスを割り当てます。
機能: この IP アドレスを介してサービスにアクセスします。外部トラフィックのロード バランシングが必要な状況に適しています。
例:

spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: my-app
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4. 外部名

定義: サービスを外部ドメイン名にマップします (データベース サービスなど)。
機能: クラスターの内部 IP またはノード IP ではなく、指定された外部ドメイン名を介してサービスにアクセスします。
例:

spec:
  type: ExternalName
  externalName: example.com
  • 1
  • 2
  • 3

2. まとめ
ClusterIP: デフォルトのサービス タイプ。クラスター内でのみアクセス可能です。
NodePort: 各ノードでポートを開いて、外部トラフィックがサービスにアクセスできるようにします。
ロードバランサー: クラウド プラットフォームによって提供されるロード バランサーは、負荷分散が必要な状況に適した外部 IP アドレスを割り当てます。
ExternalName: サービスを外部ドメイン名にマップします。外部サービスへのアクセスが必要なシナリオに適しています。