ニフクラ Catalog:CCM
下記の手順を実施した後に、type: LoadBalancerのServiceを作成すると、ニフクラ ロードバランサーが自動的に作成され、クラスターに接続されます。
ノードが増減した場合でも、自動的にロードバランサーの設定が変更され、ロードバランシング対象となるノードの設定を自動で反映します。
- 初期設定またはユーザクラスター作成でCCMを有効にしたクラスターを作成します。
- 作成されたクラスターに対して、CCMをインストールします。
- CCMのインストール手順については、ユーザーガイド Anthos(GKE Enterprise):ニフクラ ロードバランサー(L4)を接続する ステップ4:CCMインストールを参照してください。
ロードバランサーの設定例
クラスター上で下記のような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にアノテーションを付与すると、作成するロードバランサーの設定を変更できます。設定可能な値はロードバランサーの仕様に従います。
アノテーション | 項目 | 説明 |
---|---|---|
service.beta.kubernetes.io/nifcloud-load-balancer-type | ロードバランサータイプ | 作成後の変更は不可 指定可能な値: lb (ロードバランサー(L4)), elb (マルチロードバランサー) Default: lb (ロードバランサー(L4)) |
service.beta.kubernetes.io/nifcloud-load-balancer-network-volume | 最大ネットワーク流量 | ロードバランサー(L4): CreateLoadBalancer の NetworkVolume 説明参照 マルチロードバランサー: NiftyCreateElasticLoadBalancer の NetworkVolume 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-policy-type | 暗号化タイプ | ロードバランサー(L4)の設定項目 CreateLoadBalancer の PolicyType 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-accounting-type | 利用料金タイプ | ロードバランサー(L4): CreateLoadBalancer の AccountingType 説明参照 マルチロードバランサー: NiftyCreateElasticLoadBalancer の AccountingType 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-balancing-type | ロードバランス方式 | ロードバランサー(L4): CreateLoadBalancer の Listeners.member.n.BalancingType 説明参照 マルチロードバランサー: NiftyCreateElasticLoadBalancer の Listeners.member.n.BalancingType 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-healthcheck-protocol | ヘルスチェック プロトコル | ロードバランサー(L4): ConfigureHealthCheck の HealthCheck.Target 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-healthcheck-unhealthy-threshold | タイムアウトまでのヘルスチェック回数 | ロードバランサー(L4): ConfigureHealthCheck の HealthCheck.UnhealthyThreshold 説明参照 マルチロードバランサー: NiftyConfigureElasticLoadBalancerHealthCheck の HealthCheck.UnhealthyThreshold 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-healthcheck-interval | ヘルスチェック間隔 | ロードバランサー(L4): ConfigureHealthCheck の HealthCheck.Interval 説明参照 マルチロードバランサー: NiftyConfigureElasticLoadBalancerHealthCheck の HealthCheck.Interval 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-network-id | ネットワークID(1) | マルチロードバランサーの設定項目 作成時のみ参照 NiftyCreateElasticLoadBalancer.htm の NetworkInterface.n.NetworkId 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-2-network-id | ネットワークID(2) | マルチロードバランサーの設定項目 作成時のみ参照 NiftyCreateElasticLoadBalancer.htm の NetworkInterface.n.NetworkId 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-ip-address | IPアドレス(1) | マルチロードバランサーの設定項目 作成時のみ参照 NiftyCreateElasticLoadBalancer.htm の NetworkInterface.n.IpAddress 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-2-ip-address | IPアドレス(2) | マルチロードバランサーの設定項目 作成時のみ参照 NiftyCreateElasticLoadBalancer.htm の NetworkInterface.n.IpAddress 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-system-ip-addresses | システムIPアドレス(1) | マルチロードバランサーの設定項目 作成時のみ参照 カンマ(,)区切りで2つ指定 NiftyCreateElasticLoadBalancer の NetworkInterface.n.SystemIpAddresses.m.SystemIpAddress 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-2-system-ip-addresses | システムIPアドレス(2) | マルチロードバランサーの設定項目 作成時のみ参照 カンマ(,)区切りで2つ指定 NiftyCreateElasticLoadBalancer の NetworkInterface.n.SystemIpAddresses.m.SystemIpAddress 説明参照 |
service.beta.kubernetes.io/nifcloud-load-balancer-vip-network | VIPネットワークフラグ(待ち受けポートが設定されるネットワーク) | マルチロードバランサーの設定項目 作成時のみ参照 指定可能な値: 1 (ネットワークID(1)をVIPに設定する), 2 (ネットワークID(2)をVIPに設定する) Default: 1 (ネットワークID(1)をVIPに設定する) NiftyCreateElasticLoadBalancer の NetworkInterface.n.IsVipNetwork 説明参照 |
たとえば、利用料金タイプを「2 (従量課金)」とし、フィルターで「192.168.0.0/24」からの接続のみ許可するロードバランサー(L4)を作る場合は下記のように設定します。
apiVersion: v1
kind: Service
metadata:
name: hellolb
labels:
run: hello
annotations:
service.beta.kubernetes.io/nifcloud-load-balancer-type: 2
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
targetPort: 8080
name: http
nodePort: 30374
loadBalancerSourceRanges:
- 192.168.0.0/24
selector:
run: hello
プライベートLANに接続するマルチロードバランサーを作る場合は、下記のように設定します。
apiVersion: v1
kind: Service
metadata:
name: hellolb
labels:
run: hello
annotations:
service.beta.kubernetes.io/nifcloud-load-balancer-type: elb
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-network-id: net-xxxxxxxx
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-ip-address: 192.168.0.1
service.beta.kubernetes.io/nifcloud-load-balancer-network-interface-1-system-ip-addresses: 192.168.0.2,192.168.0.3
service.beta.kubernetes.io/nifcloud-load-balancer-vip-network: 1
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
targetPort: 8080
name: http
nodePort: 30374
selector:
run: hello
注意事項
- CCMを有効にしてクラスターを作成すると、お客様がCCMをインストールするまで、Podはノードにスケジューリングされません。
- クラスター内でtype: LoadBalancerのServiceを作成すると、設定に基づいて自動的にロードバランサーが作成されます。
- ロードバランサーには、ロードバランサー(L4)とマルチロードバランサーの2種類があり、いずれも別途料金が発生します。
- 作成されたロードバランサーは、ロードバランサー(L4)とマルチロードバランサーそれぞれの仕様に従います。
- 複数のクラスターにまたがって同一のロードバランサーに接続はできません。
- マルチロードバランサー作成時に、サーバーに紐づいているファイアウォールグループは、ロードバランサーからの通信を許可するように自動的にルールが設定変更されます。
- ロードバランサー名は、作成されるServiceリソースのUUIDに基づいて自動的に設定されます。
- マルチロードバランサーでは、loadBalancerSourceRangesによるIPアドレスのフィルターはできません。
- 作成したロードバランサーの設定変更はコンピューティング側で実施できません。
- クラスターを削除しても、作成したロードバランサーは残ります。CCMが正常に動作していない場合、Serviceを削除してもロードバランサーが削除されない場合があります。
- このような場合、不要となったロードバランサーは、コンピューティング側から手動で削除してください。