We are working to build an dev environment on AWS EKS having the following general guidelines:
pods/apps should talk inside the cluster using Cluster IPs (172.20.x.x cluster private)
developers should access pods via internal VPN using Endpoint IPs (10.21.x.x) and DNS records
environment should not have any public ip/access from internet
Why is this needed:
We want use ClusterIP service type so that:
kubernetes will automatically generate env_vars with private cluster ip accessible only within the cluster (Ex: MYSQL_PORT_3306_TCP_ADDR, MYSQL_PORT_3306_TCP_PORT) to be used at point 1
external-dns will automatically generate DNS A records in euw1.dev.tech domain with Endpoint IPs (10.21.34.94) to be used at point2
What's not enough ATM:
I've followed #187 but ATM, the implementation is:
If we use Headless service type then Kubernetes will not generate, of course, env_vars with private cluster ip accessible only within the cluster (MYSQL_PORT_3306_TCP_ADDR)
If we use NodePort service type then external-dns will generate DNS A records with EKS compute nodeIP (hostIP) witch is generic for all pods (10.21.33.92)
If we use ClusterIP service type with '--publish-internal-services' arg then external-dns will generate DNS A records with Cluster IP private to the cluster (172.20.x.x)
What would you like to be added:
A new arg probably '--publish-internal-services-endpoint' that will publish first EndpointIP of a ClusterIP service type : 10.21.32.160
Hi,
We are working to build an dev environment on AWS EKS having the following general guidelines:
Why is this needed:
We want use ClusterIP service type so that:
What's not enough ATM:
I've followed #187 but ATM, the implementation is:
kubernetes: version: 1.24
external-dns: version: 0.13.2 args:
What would you like to be added: A new arg probably '--publish-internal-services-endpoint' that will publish first EndpointIP of a ClusterIP service type : 10.21.32.160
Kubectl describe service:
Name: analytics Namespace: test1 Annotations: external-dns.alpha.kubernetes.io: analytics.test1.euw1.dev.tech
Selector: analytics Type: ClusterIP IP Family Policy: SingleStack IP Families: IPv4 IP: None IPs: None Port: 8082 8082/TCP TargetPort: 8082/TCP Endpoints: 10.21.32.160:8082 Session Affinity: None
Manifest:
apiVersion: v1 kind: Pod metadata: name: analytics-f75f6968c-gjmwf status: phase: Running conditions: ... hostIP: 10.21.33.92 podIP: 10.21.34.94 podIPs:
Thank you.