kube-proxy を使用する代わりに、内部トラフィック管理のために、AWS で内部 (外部 IP なし) レイヤー 4 ロードバランサー (ネットワーク LB またはクラシック LB) を作成しようとしています。
以下は私のマニフェスト ファイルです。注釈をどのように指定しても、外部 LB が作成され続けます。私はこれを、「aws-load-balancer-type」注釈と「aws-load-balancer-scheme」なしで試しました。これはデフォルトで「internal」になるはずです。次に何を試せばよいかわかりません。(次はレイヤー 7 LB を試すことになるでしょう。)
% k get svc|grep test
test-internal-lb LoadBalancer 10.100.253.178 a29xxx.us-west-2.elb.amazonaws.com 80:xxx/TCP,443:xxx/TCP 8s
apiVersion: v1
kind: Service
metadata:
name: test-internal-lb
annotations:
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
service.beta.kubernetes.io/aws-load-balancer-scheme: internal
service.beta.kubernetes.io/aws-load-balancer-type: nlb-ip
spec:
type: LoadBalancer
selector:
app: test-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
- name: https
protocol: TCP
port: 443
targetPort: 8080
答え1
解決:
test-app LoadBalancer 172.20.40.154 internal-a03xxx.us-west-2.elb.amazonaws.com 80:8000/TCP 11d
kind: Service
metadata:
name: test-app
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: “true”
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
spec:
type: LoadBalancer
externalTrafficPolicy: Local
selector:
app: test-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8000