Kubernetesサービスタイプ設定を検証する

Helm values.yamlのservice.type、service.port、関連設定をチェック。ClusterIP、NodePort、LoadBalancer、ExternalNameタイプに基づいて検証します。

Basic Configuration

詳細な説明

サービスタイプ設定

Helm valuesのserviceセクションは、アプリケーションがKubernetesクラスター内外でどのように公開されるかを制御します。ここの値が間違っていると、サービスに到達できなくなったり、誤ってインターネットに公開されたりする可能性があります。

有効なサービスタイプ

# ClusterIP(デフォルト)- 内部のみ
service:
  type: ClusterIP
  port: 80

# NodePort - 各ノードのIPで公開
service:
  type: NodePort
  port: 80
  nodePort: 30080

# LoadBalancer - 外部LBをプロビジョニング
service:
  type: LoadBalancer
  port: 80

# ExternalName - DNSエイリアス
service:
  type: ExternalName
  externalName: api.external-service.com

検証される項目

  1. タイプ値: ClusterIP、NodePort、LoadBalancer、ExternalNameのいずれかである必要があります(大文字小文字区別)
  2. ポートの型: service.portは数値であるべき
  3. 一貫性: Ingressが有効な場合、サービスタイプは通常ClusterIPであるべき

よくある間違い

間違い 問題 修正
type: clusterIP 大文字小文字の間違い type: ClusterIP
type: Headless 有効なタイプではない type: ClusterIPclusterIP: None
port: "80" 数値ではなく文字列 port: 80
LoadBalancer + Ingress 冗長 IngressとClusterIPを使用

ユースケース

ステージング(Ingressの背後)ではClusterIPが必要だが、ベアメタル本番クラスターではLoadBalancerが必要な、異なる環境へのデプロイ前にサービス設定をレビュー。

試してみる — Helm Values Validator

フルツールを開く