Sobes.tech
Middle

Оё як барномаи аз як фазои ном метавонад барномаи аз дигар фазои ном дар дохили кластер бубинад?

sobes.tech AI

Ҷавоб аз AI

បាទ/ចាស, កម្មវិធីនៅក្នុង namespace ផ្សេងៗអាចមើលឃើញគ្នានៅក្នុង cluster។

នៅ Kubernetes, namespace គឺជា ការបែងចែកតាមតុល្យភាពដែលជួយរៀបចំធនធាន។ ពួកវាមិនមែនជា ការបំបែកបណ្តាញដោយលំនាំដើមទេ។

ការប្រាស្រ័យទាក់ទងរវាង namespace អាចធ្វើបានតាមរយៈ DNS សេវាកម្មរបស់ Kubernetes។

កម្មវិធីនៅក្នុង namespace-a អាចចូលទៅកាន់សេវាកម្មដែលមានឈ្មោះ my-service នៅក្នុង namespace-b ដោយប្រើឈ្មោះដែនពេញ (FQDN):

<ឈ្មោះសេវា>.<ឈ្មោះ namespace>.svc.cluster.local

ឧទាហរណ៍: my-service.namespace-b.svc.cluster.local

ក៏អាចប្រើឈ្មោះខ្លីបាន ប្រសិនបើ DNS នៅក្នុង cluster ត្រូវបានកំណត់យ៉ាងត្រឹមត្រូវ ប៉ុន្តែ FQDN គឺមានភាពទុកចិត្តខ្ពស់ជាងសម្រាប់ការប្រាស្រ័យទាក់ទងរវាង namespace។

# ឧទាហរណ៍សេវាកម្មនៅ namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # ឈ្មោះសេវាកម្ម
  namespace: namespace-b # namespace របស់សេវាកម្ម
spec:
  selector:
    app: my-app # ជ្រើសរើសសម្រាប់ pod ដែលសេវាកម្មផ្តល់សេវា
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# ឧទាហរណ៍ Pod នៅ namespace-a ដែលចូលទៅកាន់សេវាកម្មនៅ namespace-b
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # namespace របស់ pod អ្នកប្រើ
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # អាសយដ្ឋានសេវាកម្មនៅ namespace ផ្សេងទៀត

សំខាន់ណាស់ដែលត្រូវចំណាំថា នយោបាយបណ្តាញ (Network Policies) អាចត្រូវបានប្រើដើម្បី កំណត់ ការប្រាស្រ័យទាក់ទងរវាង namespace។ ដោយលំនាំដើម ប្រសិនបើមិនមាននយោបាយទេ ការប្រាស្រ័យទាក់ទងត្រូវបានអនុញ្ញាត។

នយោបាយបណ្តាញកំណត់ក្រុម pod ដែលអាចធ្វើការប្រាស្រ័យទាក់ទងគ្នា ដោយផ្អែកលើ namespace និងស្លាករបស់ពួកវា។