- 印刷する
- PDF
Load Balancer プロパティ設定のユースケース
- 印刷する
- PDF
VPC環境で利用できます。
Load Balancer インスタンスの連携で紹介した各種アノテーションを活用して Load Balancerインスタンスのプロパティを設定するユースケースです。
Kubernetesで作成した NAVERクラウドプラットフォームのロードバランサを Kubernetesの Serviceリソースではなくコンソールと APIを通じて設定する場合、状態の同期に問題が発生する場合があります。作成したロードバランサに関する設定の変更は、必ず Kubernetesで作成した Serviceリソースを修正して行ってください。
ネットワークプロキシロードバランサ(NPLB)プロパティ設定のユースケース
インスタンスが作成される専用サブネット選択のユースケース
インスタンスの作成時、kube-systemの名前空間で ncloud-configという名前の configmap内の lbSubnetNoをデフォルトで使用します。他のロードバランサ専用のサブネットにインスタンスを作成する場合は、service.beta.kubernetes.io/ncloud-load-balancer-subnet-id
アノテーションを使用できます。
以下は、NPLBインスタンスが作成される専用サブネットを選択するユースケースです。
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-subnet-id: "452772"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
ロードバランサの負荷処理性能設定のユースケース
service.beta.kubernetes.io/ncloud-load-balancer-size
アノテーションを用いて作成したロードバランサの負荷処理性能を設定できます。
以下は、そのアノテーションを用いて負荷処理性能を設定するユースケースです。
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-size: "MEDIUM"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
ロードバランサのグローバル IPアドレス付与のユースケース
LoadBalancer
タイプの Serviceの場合、spec.loadBalancerIP
フィールドにロードバランサに割り当てるグローバル IPアドレスを定義できます。
当該フィールドには、네이버 클라우드 플랫폼 콘솔 > VPC > Public IP
メニューで確認できる未割り当て状態のグローバル IPアドレスのみ記述できます。
基本的にロードバランサを削除すると、割り当てられたグローバル IPアドレスも一緒に返却されます。グローバル IPアドレスが一緒に返却されないように service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
annotationを使用できます。
apiVersion: v1
kind: Service
metadata:
name: static-service
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb"
service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
spec:
loadBalancerIP: 110.234.194.181
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: nginx
ネットワークロードバランサ(NLB)プロパティ設定のユースケース
インスタンスが作成される専用サブネット選択のユースケース
インスタンスの作成時、kube-systemの名前空間で ncloud-configという名前の configmap内の lbSubnetNoをデフォルトで使用します。他のロードバランサ専用のサブネットにインスタンスを作成する場合は、service.beta.kubernetes.io/ncloud-load-balancer-subnet-id
アノテーションを使用できます。
以下は、NLBインスタンスが作成される専用サブネットを選択するユースケースです。
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-subnet-id: "452772"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
ロードバランサのグローバル IPアドレス付与のユースケース
LoadBalancer
タイプの Serviceの場合、spec.loadBalancerIP
フィールドにロードバランサに割り当てるグローバル IPアドレスを定義できます。
当該フィールドには、네이버 클라우드 플랫폼 콘솔 > VPC > Public IP
メニューで確認できる未割り当て状態のグローバル IPアドレスのみ記述できます。
基本的にロードバランサを削除すると、割り当てられたグローバル IPアドレスも一緒に返却されます。グローバル IPアドレスが一緒に返却されないように service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
annotationを使用できます。
apiVersion: v1
kind: Service
metadata:
name: static-service
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination: "true"
spec:
loadBalancerIP: 110.234.194.181
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: nginx
ロードバランサの作成時、ACGルールの Inbound Source設定のユースケース
Serviceタイプが LoadBalancerの場合、外部との通信のために Inbound Sourceに0.0.0.0./0の ACGルールがデフォルトで設定されます。他の IP Blockをアクセスソースとして設定する場合は、service.beta.kubernetes.io/ncloud-load-balancer-inbound-source
のアノテーションを使用できます。複数の Inbound Sourceを設定する場合は、コンマ(,)で区切って入力できます。
以下は、NLBインスタンス作成時に ACGルールの Inbound Sourceを設定するユースケースです。
kind: Service
apiVersion: v1
metadata:
name: my-nginx
annotations:
service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nlb"
service.beta.kubernetes.io/ncloud-load-balancer-inbound-source: "10.120.0.0/16,143.248.12.77/32"
spec:
ports:
- port: 80
targetPort: 80
selector:
run: my-nginx
type: LoadBalancer
UDPロードバランシングの設定
ネットワークロードバランサ(NLB)は UDPロードバランシングをサポートします。protocolフィールドに UDPを指定する例は、次の通りです。
apiVersion: v1
kind: Service
metadata:
name: sample-udp-app
spec:
type: LoadBalancer
ports:
- port: 9092
targetPort: 9092
protocol: UDP
selector:
app: sample-udp-app