Uploaded image for project: 'OpenShift Etcd'
  1. OpenShift Etcd
  2. ETCD-502

Explore using DNS endpoints for etcd servers

XMLWordPrintable

    • Icon: Spike Spike
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • 5
    • False
    • None
    • False
    • ETCD Sprint 248, ETCD Sprint 249, ETCD Sprint 250

      This spike is to explore the feasibility and use of DNS endpoints instead of IP addresses when running etcd on openshift.

      Currently etcd is deployed with the internal IP address of the node it's running on. Switching from node IP addresses to a a fully qualified domain name (FQDN) would help decouple the etcd server from the node it's running on, so that the node underneath could change IP addresses without 
      See slack thread for more background and the use-case from SNO:
      https://redhat-internal.slack.com/archives/C027U68LP/p1697462547151829

      The first part of this spike is to explore the above use case and see whether using DNS endpoints would even solve the above use case.

      The second part would be to identify all the places where the expectation of IP addresses is assumed in the operator (e.g clustermember and cert rotation controllers) and the deployment of etcd today and see what would be required to switch those over to DNS endpoints.

      Most importantly the etcd-endpoints configmap which is populated with IP addresses and passed onto the API server for consumption.
      https://github.com/kubernetes/apiserver/blob/56aa0e9a5999cea2083ae7468483b0af5392acce/pkg/server/options/etcd.go#L170C101-L170C111
       
      Equally important would be figuring out the mechanics of how the DNS endpoint for each etcd pod is configured (e.g vanilla Service object?).

              alray@redhat.com Allen Ray
              rhn-coreos-htariq Haseeb Tariq
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: