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
検証される項目
- タイプ値: ClusterIP、NodePort、LoadBalancer、ExternalNameのいずれかである必要があります(大文字小文字区別)
- ポートの型:
service.portは数値であるべき - 一貫性: Ingressが有効な場合、サービスタイプは通常ClusterIPであるべき
よくある間違い
| 間違い | 問題 | 修正 |
|---|---|---|
type: clusterIP |
大文字小文字の間違い | type: ClusterIP |
type: Headless |
有効なタイプではない | type: ClusterIPとclusterIP: None |
port: "80" |
数値ではなく文字列 | port: 80 |
| LoadBalancer + Ingress | 冗長 | IngressとClusterIPを使用 |
ユースケース
ステージング(Ingressの背後)ではClusterIPが必要だが、ベアメタル本番クラスターではLoadBalancerが必要な、異なる環境へのデプロイ前にサービス設定をレビュー。