google-cloud-platform - Kubectl 创建服务类型负载均衡器(在 GCP 上但添加标志 Global?)
问题描述
我已经为我的微服务创建了负载均衡器,使用这个模板:,一切都很好并且可以工作,但想要以某种方式添加global
标志(当你通过 gcp 控制台创建 lb 时,你可以选择添加它)以满足应用程序功能的期望,确实有人知道我还需要添加什么其他标志吗?
apiVersion: v1
kind: Service
metadata:
name: my-app-jmprlb
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: my-app
env: dev
spec:
type: LoadBalancer
selector:
app: my-app
env: dev
ports:
- port: 80
targetPort: 8080
protocol: TCP
loadBalancerIP: 10.10.10.10
externalTrafficPolicy: Local
编辑:我从谷歌文档中找到了一些不错的注释,似乎可以解决问题,https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balance-ingress
# web-service.yaml
apiVersion: v1
kind: Service
metadata:
name: hostname
namespace: default
annotations:
cloud.google.com/neg: '{"ingress": true}'
spec:
ports:
- name: host1
port: 80
protocol: TCP
targetPort: 9376
selector:
app: hostname
type: NodePort
和
# internal-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ilb-demo-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "gce-internal"
spec:
backend:
serviceName: hostname
servicePort: 80
解决方案
如果你想让它成为一个全局的LoadBalancer
,可以从你的集群外部通过公共 IP 访问,你可以使用:
apiVersion: v1
kind: Service
metadata:
name: my-app-jmprlb
labels:
app: my-app
env: dev
spec:
type: LoadBalancer
selector:
app: my-app
env: dev
ports:
- port: 80
targetPort: 8080
protocol: TCP
请注意,注释cloud.google.com/load-balancer-type: "Internal"
意味着您的服务只能通过与集群所在子网对等的子网访问。
推荐阅读
- python - 检查输入时出错:预期输入为 3 维,但得到的数组形状为 (50, 1)
- python - 如何使用熊猫从csv中的2列中获取重复值列表
- .htaccess - 如何将此 htaccess 转换为 iis web.config?
- python - 自动从分组数据框中创建新数据框
- firebase - 函数执行耗时 60002 毫秒,完成状态为:可调用函数的“超时”
- java - 如何同时填写多个表
- sql - 如何根据其他列的值更新列
- html - 颜色被覆盖,但css中的文本装饰
- angular - 离子选择和离子日期时间的离子通过值计算
- javascript - 如何使用嵌套过滤器来检测是否只有一个 li 以及它的孩子是否只有