elasticsearch - Kubernetes:在 VPN 内部公开服务
问题描述
我已经使用 kops 创建了 kubernetes 集群
kops create cluster \
--dns-zone=vpc.abc.in \
--master-zones=ap-southeast-1a,ap-southeast-1b,ap-southeast-1c \
--zones=ap-southeast-1a,ap-southeast-1b,ap-southeast-1c \
--node-count 3 \
--topology private \
--networking flannel-vxlan \
--node-size=t2.medium \
--master-size=t2.micro \
${NAME}
我正在使用私有拓扑和内部负载均衡器。
每当我创建 type=LoadBalancer 的服务时,它都会创建一个面向公众的 ELB,并且 url 可以公开访问。
我想部署 Elastic Search 和 kibana 并使其仅在 VPN 内部可用。我们已经设置了 VPN。
如何使 VPN 内的服务可访问?
解决方案
将以下注释添加到您的服务定义中:
service.beta.kubernetes.io/aws-load-balancer-internal: '"true"'
完整示例:
kind: Service
apiVersion: v1
metadata:
name: my-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: '"true"'
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
type: LoadBalancer
这将提供一个内部 ELB,而不是外部。
推荐阅读
- reactjs - Does useCallback improve performance when rendering components inside a normal function?
- mongodb - MongoDB $lookup,按日期显示最大文档
- mongodb - MongoDB "Automatically disabling TLS 1.0, to force-enable TLS 1.0"
- javascript - redux 没有捕捉到错误
- android - 当我添加安全参数插件时,Gradle 同步失败
- python - 访问单个列表值的更好解决方案
- python - 如何在 seaborn FacetGrid 中格式化 y 轴或 x 轴标签
- google-apps-script - 谷歌 appscript 将工作表转换为 PDF
- javascript - 如何使用排序表达式对对象属性进行动态排序?
- perl - 如何使用 perl 和 sendmail 从 URL 发送 pdf [Mail::Sendmail]