ニフクラ Kubernetes Service Hatoba:ロードバランサー
ニフクラ Kubernetes Service Hatobaで作成したクラスター上でtype: LoadBalancerのServiceを作成すると、ニフクラ ロードバランサー(L4)が自動的に作成され、クラスターに接続されます。ノードが増減した場合でも、自動的にロードバランサーの設定が変更され、ロードバランシング対象となるノードの設定を自動で反映します。
ロードバランサーの設定例
クラスター上で下記のようなServiceを作成すると、ロードバランサー(L4)が作成されます。ロードバランサー(L4)の料金はクラスターとは別にかかります。
apiVersion: v1
kind: Service
metadata:
name: hellolb
labels:
run: hello
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
targetPort: 8080
name: http
nodePort: 30374
selector:
run: hello
アノテーション
Serviceにアノテーションを付与すると、作成するロードバランサーの設定を変更できます。設定可能な値はロードバランサー(L4)の仕様に従います。
アノテーション | 項目 | 説明 |
---|---|---|
service.beta.kubernetes.io/hatoba-load-balancer-name | ロードバランサー名 | 未指定の場合、metadata.nameの名前で作成されます |
service.beta.kubernetes.io/hatoba-load-balancer-network-volume | 最大ネットワーク流量 | ロードバランサーの最大ネットワーク流量が指定できます |
service.beta.kubernetes.io/hatoba-load-balancer-accounting-type | 利用料金タイプ | 未指定の場合、2 (従量課金)が設定されます |
service.beta.kubernetes.io/hatoba-load-balancer-policy-type | 暗号化タイプ | 暗号化タイプは変更不可のため、作成時のみ参照します |
service.beta.kubernetes.io/hatoba-load-balancer-balancing-type | ロードバランス方式 | ロードバランサーのロードバランス方式が指定できます |
service.beta.kubernetes.io/hatoba-load-balancer-healthcheck-protocol | ヘルスチェック プロトコル | 未指定の場合、TCP:(宛先ポート) が設定されます |
service.beta.kubernetes.io/hatoba-load-balancer-healthcheck-unhealthy-threshold | タイムアウトまでのヘルスチェック回数 | 未指定の場合、3が設定されます |
service.beta.kubernetes.io/hatoba-load-balancer-healthcheck-healthy-threshold | 復旧した際のヘルスチェックの復旧判断回数 | 復旧した際のヘルスチェックの復旧判断回数が設定できます |
service.beta.kubernetes.io/hatoba-load-balancer-healthcheck-interval | ヘルスチェック間隔 | 未指定の場合、30(秒)が設定されます |
service.beta.kubernetes.io/hatoba-load-balancer-filter-type | フィルタータイプ | ロードバランサーのフィルタータイプが指定できます。フィルター対象のIPアドレスは spec.loadBalancerSourceRanges で指定します |
たとえば、ロードバランサー名を「test」とし、フィルターで「192.168.0.0/24」からの接続のみ許可するロードバランサーを作る場合は下記のように設定します。
apiVersion: v1
kind: Service
metadata:
name: hellolb
labels:
run: hello
annotations:
service.beta.kubernetes.io/hatoba-load-balancer-name: test
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
targetPort: 8080
name: http
nodePort: 30374
loadBalancerSourceRanges:
- 192.168.0.0/24
selector:
run: hello
注意事項
- クラスター内でtype: LoadBalancerのServiceを作成すると、自動的にロードバランサー(L4)が作成されます。ロードバランサー(L4)の料金はクラスターとは別にかかるため、ご注意ください
- 作成されたロードバランサーはロードバランサー(L4)の仕様に従います
- クラスターのリストア時など、複数のクラスターで同一の設定のServiceが作成された場合、ロードバランサーは最後に設定が行われたクラスターに接続されます。複数のクラスターにまたがって単一のロードバランサー接続はできません