Am trecut prin documentația K8s pe DNS pentru servicii și poduri.Sarcina principală pe care vreau să o rezolv este implementarea mea K8s NodePort ca tip de serviciu. Adică, folosesc adresele IP externe de la noduri pentru a expune serviciul la Internet. Când fac acest lucru, adresa mea IP este expusă și ar prefera mai degrabă să aibă un nume de gazdă [un nume DNS]. Parcurgând documentația de mai sus, nu înțeleg multe dintre concepte datorită faptului că sunt nou în K8s.
Am configurat Ingress Controller de la NGINX pentru Bare Metal K8s, deoarece furnizorul meu de cloud nu oferă serviciu de echilibrare a sarcinii.
Deci intrebarea mea este:
Cum configurez un ExternalDNS în clusterul meu K8s?
În scop de referință, acestea sunt resursele mele din clusterul K8s.
Spații de nume
NUME STARE VARSTA
implicit Activ 3d12h
ingress-nginx Activ 5h53m
kube-node-lease Activ 3d12h
kube-public Active 3d12h
kube-system Active 3d12h
Practic, am toate implementările mele în interiorul Mod implicit spatiu de nume.
kubectl obține totul -n implicit
 STAREA NUMELE GATA REINCEPE VARSTA
pod/hello-docker-cc749b757-qfctr 1/1 Alergare 0 70m
NUME TIP CLUSTER-IP EXTERN-IP PORT(E) Vârsta
service/hello-docker NodePort 10.xxx.xxx.xxx <niciunul> 3000:30072/TCP 70m
service/kubernetes ClusterIP 10.xxx.xxx.xxx <niciunul> 443/TCP 3d12h
NUME GATA ACTUALIZAT VÂRSTA DISPONIBILĂ
deployment.apps/hello-docker 1/1 1 1 70m
NUME VÂRSTA ACTUALĂ GATA DEZIRATĂ
replicaset.apps/hello-docker-cc749b757 1 1 1 70m
Și acesta este fișierul manifest pe care îl am pentru service și implementare salut-docker aplicatie:
apiVersion: v1
fel: Serviciu
metadate: 
 nume: hello-docker 
 etichete:   
   aplicație: hello-docker
specificație: 
 tip: NodePort
 porturi:
 - port: 3000
   targetPort: 8000
   protocol: TCP
   nume: http
 selector:
   aplicație: hello-docker
---
apiVersion: apps/v1
fel: Desfăşurare
metadate:
  nume: hello-docker
  etichete:
    aplicație: hello-docker
specificație:
  replici: 1
  selector:
    matchLabels:
      aplicație: hello-docker
  șablon:
    metadate:
      etichete:
        aplicație: hello-docker
    specificație:
      imagePullSecrets:
      - nume: regcred
      containere:
      - nume: hello-docker
        imagine: sebastian/hello-docker:1.1
        imagePullPolicy: Întotdeauna
        porturi:
          - containerPort: 8000 
Orice feedback și sugestie ar fi foarte apreciat.