How can I get the cluster IP info within the Kubernetes yaml file before it's been created?

8/16/2017

I have a docker container that needs to run in Kubernetes, but within its parameters, there's one need the container's Cluster IP info. How can I write a Kubernetes yaml file with that info?

# I want docker to run like this
docker run ... --wsrep-node-address=<ClusterIP>

# xxx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: galera01
  labels:
    name: galera01
  namespace: cloudstack
spec:
  containers:
  - name: galeranode01
    image: erkules/galera:basic
    args:
    # Is there any variable that I can use to represent the
    # POD IP or CLUSTER IP here?
    - --wsrep-node-address=<ClusterIP>
-- user1726366
docker
kubernetes

1 Answer

8/16/2017

If i get this right you want to know node ip for which runs the container.
You can achive this by using kubernetes dns.
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

Services
A records “Normal” (not headless)
Services are assigned a DNS A record for a name of the form my-svc.my-namespace.svc.cluster.local. This resolves to the cluster IP of the Service.

Another way you can create a service and use this.
https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service

-- Fahri
Source: StackOverflow