Alibaba Cloud Server Load Balancer を利用してサービスにアクセスできます。
コマンドラインを利用した操作
- コマンドラインを利用して Nginx アプリケーションを作成します。
root@master # kubectl run nginx --image=registry.aliyuncs.com/acs/netdia:latest root@master # kubectl get po NAME READY STATUS RESTARTS AGE nginx-2721357637-dvwq3 1/1 Running 1 6s
- Nginx アプリケーションへの Alibaba Cloud Server Load Balancer サービスを作成し、
type=LoadBalancer
を設定し、Nginx サーバーをインターネットに公開します。root@master # kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer root@master # kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx 172.19.10.209 101.37.192.20 80:31891/TCP 4s
- ブラウザから
http://101.37.192.20
へアクセスし、お使いの Nginx サービスへ移動します。
詳細情報
Alibaba Cloud Server Load Balancer により、ヘルスチェック、請求方法および負荷分散などのパラメーター設定もサポートされています。 詳しくは、「Server Load Balancer 設定パラメーター」をご参照ください。
アノテーション
Alibaba Cloud では、アノテーションを利用することにより、多くの Server Load Balancer 機能がサポートされます。
既存のイントラネット Server Load Balancer インスタンスの使用
2 つのアノテーションを設定する必要があります。 お使いの Server Load Balancer インスタンス ID に置き換えます。
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
service.beta.kubernetes.io/alicloud-loadbalancer-id: your-loadbalancer-id
labels:
run: nginx
name: nginx
namespace: default
spec:
ports:
- name: web
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
sessionAffinity: None
type: LoadBalancer
前出の内容を "slb.svc" として保存し、コマンド kubectl apply -f slb.svc
を実行します。
HTTPS タイプ Server Load Balancer インスタンスの作成
Alibaba Cloud コンソールで証明書を作成し、"cert-id" を登録します。 その後、以下のアノテーションを使用し、HTTPS タイプ Server Load Balancer インスタンスを作成します。
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-cert-id: your-cert-id
service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port: "https:443"
labels:
run: nginx
name: nginx
namespace: default
spec:
ports:
- name: web
port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
sessionAffinity: None
type: LoadBalancer
注 アノテーションは大文字と小文字を区別します。
アノテーション | 説明 | デフォルト値 |
---|---|---|
service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port | コンマ (,) を使用し複数の値を分割します。 たとえば、"https:443,http:80" となります。 | なし |
service.beta.kubernetes.io/alicloud-loadbalancer-address-type | 値は "Internet" または "Intranet" となります。 | Internet |
service.beta.kubernetes.io/alicloud-loadbalancer-slb-network-type | Server Load Balancer ネットワークタイプ 値は "Classic" または "VPC" となります。 | Classic |
service.beta.kubernetes.io/alicloud-loadbalancer-charge-type | 値は "paybytraffic" または "paybybandwidth" となります。 | paybybandwidth |
service.beta.kubernetes.io/alicloud-loadbalancer-id | Server Load Balancer インスタンス ID です。 "loadbalancer-id" を持つ既存の Server Load Balancer を指定すると、既存のリスナーは上書きされます。 サービスが削除された場合、Server Load Balancer は削除されません。 | なし |
service.beta.kubernetes.io/alicloud-loadbalancer-backend-label | ラベルを使用し、どのノードが Server Load Balancer バックエンドにマウントされるかを指定します。 | なし |
service.beta.kubernetes.io/alicloud-loadbalancer-region | Server Load Balancer があるリージョンです。 | なし |
service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth | Server Load Balancer 帯域幅です。 | 50 |
service.beta.kubernetes.io/alicloud-loadbalancer-cert-id | Alibaba Cloud での証明書の ID です。 まず、証明書がアップロードされている必要があります。 | “” |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-flag | 値は "on" または "off" です。 | デフォルト値は "off" です。 TCP パラメーターを変更する必要はありません。デフォルトで TCP によりヘルスチェックが有効化され、設定できないためです。 |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-type | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-uri | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-connect-port | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-healthy-threshold | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-unhealthy-threshold | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-interval | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-connect-timeout | 『ヘルスチェック』をご参照ください。 | |
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-timeout | 『ヘルスチェック』をご参照ください。 |