Vai viena nosaukumu telpa var redzēt citas nosaukumu telpas lietojumprogrammu klasterī?
sobes.tech AI
Atbilde no AI
Jā, dažādās vārdu telpās esošas lietojumprogrammas var redzēt viena otru klasterī.
Kubernetes vārdu telpas ir loģiskas izolācijas, kas palīdz organizēt resursus. Tās nav noklusējuma tīkla izolācija.
Sadarbība starp vārdu telpām ir iespējama caur DNS Kubernetes pakalpojumiem.
Lietojumprogramma namespace-a var piekļūt pakalpojumam ar nosaukumu my-service namespace-b, izmantojot tā pilno domēna nosaukumu (Fully Qualified Domain Name - FQDN):
<pakalpojuma-nosaukums>.<vārdu-telpas-nosaukums>.svc.cluster.local
Piemērs: my-service.namespace-b.svc.cluster.local
Tāpat var izmantot saīsinātu nosaukumu, ja DNS klasterī tas ir pareizi konfigurēts, taču FQDN vienmēr ir drošāks starpvardarbības sadarbībai.
# Piemērs pakalpojumam namespace-b
apiVersion: v1
kind: Service
metadata:
name: my-service # Pakalpojuma nosaukums
namespace: namespace-b # Vārdu telpa
spec:
selector:
app: my-app # Atlasītājs podiem, uz kuriem attiecas pakalpojums
ports:
- protocol: TCP
port: 80
targetPort: 8080
# Piemērs Pod namespace-a, kas piekļūst pakalpojumam namespace-b
apiVersion: v1
kind: Pod
metadata:
name: consumer-pod
namespace: namespace-a # Lietotāja vārdu telpa
spec:
containers:
- name: consumer-container
image: my-consumer-image
command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Pakalpojuma adrese citā vārdu telpā
Svarīgi atzīmēt, ka tīkla drošības politikas (Network Policies) var tikt izmantotas, lai ierobežotu sadarbību starp vārdu telpām. Pēc noklusējuma, ja šādas politikas nav, sadarbība ir atļauta.
Tīkla politikas definē podu grupas, kas var sadarboties savā starpā, balstoties uz to vārdu telpām un marķējumiem.