自動 Envoy インジェクション チュートリアルを使用した Traffic Director のセットアップ を使用して、GCP Traffic Director にフックされたシンプルな GKE クラスタをセットアップしました。
次のステップは、内部のみの Traffic Director バックエンド サービスに外部トラフィックをマップする方法です。
基本的に、私の目標は、外部トラフィックを受け取り、それを Traffic Director サービス メッシュにルーティングして、異なるネットワーク エンドポイント グループ間でトラフィックを分割する IP アドレスを持つ外部ロード バランサーを用意することです。
私は次のことを試しました:
- Network Services -> Load Balancing --> で外部ロード バランサーを手動で作成します。ただし、バックエンドのリストには Traffic Director バックエンド サービスが含まれていないため、外部 IP を持つものを作成して内部サービス メッシュにリダイレクトすることはできません。
- NGINXイングレス コントローラー チャートをインストールし、それを介し
.yaml
て k8s クラスター サービスにマップするイングレス コントローラーをインストールします -->これにより外部ロード バランサーが作成されますが、Traffic Director を介するのではなく、サービスに直接アクセスするだけです。
イングレス:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-nginx-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
nginx.ingress.kubernetes.io/proxy-send-timeout: "60"
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
nginx.ingress.kubernetes.io/send-timeout: "60"
nginx.ingress.kubernetes.io/proxy-body-size: 1M
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: my-host-name.hostname.com
http:
paths:
- path: "/"
backend:
serviceName: service-test
servicePort: 80
サービス:
apiVersion: v1
kind: Service
metadata:
name: service-test
annotations:
cloud.google.com/neg: '{"exposed_ports":{"80":{"name": "service-test-neg"}}}'
spec:
ports:
- port: 80
name: service-test
protocol: TCP
targetPort: 8000
selector:
run: app1
type: ClusterIP
展開:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: app1
name: app1
spec:
replicas: 1
selector:
matchLabels:
run: app1
template:
metadata:
labels:
run: app1
spec:
containers:
- image: gcr.io/kubernetes-e2e-test-images/serve-hostname-amd64:1.1
name: app1
command:
- /bin/sh
- -c
- /serve_hostname -http=true -udp=false -port=8000
ports:
- protocol: TCP
containerPort: 8000
上記のデプロイとサービスは、チュートリアルから直接取得したものです。
メッシュのエッジでセカンドレベル ゲートウェイを使用してイングレス トラフィックを処理するための公式ドキュメントに概念があるようですが、それは概念的なものであり、実際にそれを行う方法を提供していません。
GKE への高度なトラフィック構成のために、外部ロードバランサを使用して外部トラフィックを GCP Traffic Director マネージド サービス メッシュにマッピングするにはどうすればよいですか?