Tanzu Kubernetes クラスタで外部ロード バランサをプロビジョニングするには、LoadBalancer タイプのサービスを作成します。ロード バランサ サービスは、パブリック IP アドレスを公開します。外部ロード バランサからのトラフィックは、クラスタ ポッドで転送できます。
サービスとして公開される Kubernetes ポッドに外部ロード バランサをプロビジョニングできます。たとえば、Nginx コンテナをデプロイして、LoadBalancer タイプの Kubernetes サービスとして公開できます。
手順
- デフォルトの特権 PSP に適したロール バインドを作成します。ポッド セキュリティ ポリシーのロール バインドの例を参照してください。
- 次の nginx-lbsvc.yaml YAML ファイルを作成します。
この YAML ファイルは、LoadBalancer タイプの Kubernetes サービスを定義し、このサービスの外部ロード バランサとして Nginx コンテナをデプロイします。
kind: Service
apiVersion: v1
metadata:
name: srvclb-ngnx
spec:
selector:
app: hello
tier: frontend
ports:
- protocol: "TCP"
port: 80
targetPort: 80
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: loadbalancer
spec:
replicas: 2
selector:
matchLabels:
app: hello
template:
metadata:
labels:
app: hello
tier: frontend
spec:
containers:
- name: nginx
image: "nginxdemos/hello"
- YAML を適用します。
kubectl apply -f nginx-lbsvc.yaml
- Nginx サービスが展開されていることを確認します。
srvclb-ngnx
は、外部および内部 IP アドレスで稼動しています。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
srvclb-ngnx LoadBalancer 10.11.12.19 10.19.15.89 80:30818/TCP 18m
- ブラウザを使用して、Nginx LoadBalancer サービスの外部 IP アドレスを入力します。
NGINX
のメッセージ バナーとロード バランサの詳細が表示されます。