Tud-e egy névtérből származó alkalmazás látni egy másik névtérben lévő alkalmazást a klaszteren belül?
sobes.tech MI
Válasz az MI-től
Igen, a különböző névtérben lévő alkalmazások láthatják egymást a klaszteren belül.
A Kubernetesben a nevekterek logikai izolációk, amelyek segítenek az erőforrások szervezésében. Alapértelmezés szerint nem hálózati izolációk.
A névtér közötti interakció DNS-szolgáltatásokon keresztül lehetséges a Kubernetesben.
Egy alkalmazás a namespace-a-ban hozzáférhet a my-service nevű szolgáltatáshoz a namespace-b-ben a teljes domain név (FQDN) használatával:
<szolgáltatás-neve>.<namespace-neve>.svc.cluster.local
Példa: my-service.namespace-b.svc.cluster.local
Szintén használható rövidített név, ha a DNS a klaszterben megfelelően van konfigurálva, de a FQDN mindig megbízhatóbb a névtér közötti kommunikációhoz.
# Példa Service a namespace-ből
apiVersion: v1
kind: Service
metadata:
name: my-service # Szolgáltatás neve
namespace: namespace-b # Szolgáltatás névtér
spec:
selector:
app: my-app # Kiválasztó a podokhoz, amelyekhez a szolgáltatás kapcsolódik
ports:
- protocol: TCP
port: 80
targetPort: 8080
# Példa Pod a namespace-a-ből, amely hozzáfér egy szolgáltatáshoz a namespace-a-ban
apiVersion: v1
kind: Pod
metadata:
name: consumer-pod
namespace: namespace-a # A fogyasztó pod névtér
spec:
containers:
- name: consumer-container
image: my-consumer-image
command: ["curl", "my-service.namespace-b.svc.cluster.local"] # A másik névtérben lévő szolgáltatás címe
Fontos megjegyezni, hogy a hálózati politikák (Network Policies) használhatók a névtér közötti korlátozására. Alapértelmezés szerint, ha nincsenek ilyen politikák, az interakció engedélyezett.
A hálózati politikák podcsoportokat határoznak meg, amelyek egymással kommunikálhatnak, a névtérük és címkéik alapján.