【发布时间】:2022-02-19 03:00:31
【问题描述】:
问题:我目前在我的 EKS 集群中使用 ingress-nginx 将流量路由到需要公共访问的服务。
我的用例:我想在同一个集群中部署服务,但不希望它们具有公共访问权限。我只希望 pod 与集群内的所有其他服务进行通信。这些 pod 是私有的,因为它们是后端服务,只需要 pod 到 pod 的通信。如何为此目的修改我的入口资源?
集群架构:所有服务都在集群的私有子网中,而负载均衡器在公共子网中
附加说明:我正在使用external-dns 为托管区域动态创建子域。托管区域是公共的
谢谢
以下是我的service.yml 和ingress.yml 用于公共服务。我想为私人服务修改这些文件
service.yml
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: myapp
annotations:
external-dns.alpha.kubernetes.io/hostname: myapp.dev.com
spec:
ports:
- port: 80
targetPort: 3000
selector:
app: myapp
ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp
namespace: myapp
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
labels:
app: myapp
spec:
tls:
- hosts:
- myapp.dev.com
secretName: myapp-staging
rules:
- host: myapp.dev.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: 'myapp'
port:
number: 80
【问题讨论】:
-
你用的是什么kubernetes版本?
-
@Bazhikov Kubenetes 1.21
标签: amazon-web-services kubernetes-ingress amazon-eks nginx-ingress external-dns