Kurulumlar için Erişilmesi Gereken Adresler

archive.ubuntu.com / cdn.redhat.com
*.docker.com
*.docker.io
*.k8s.io
*.amazonaws.com (bu erişimin sebebi için lütfen kubernetes dokümantasyonuna göz atınız)
*.mongodb.org
artifacts.elastic.co

Bu port erişimleri kubernetes 1.31.0 ve flannel 0.26.1 versiyonu için kontrol edilmiş ve onaylanmıştır, Farklı kubernetes ve flannel versiyonlarında portlar değişiklik gösterebilir.

Kubernetes Worker Sunuculardan Master Sunucularına Port Erişimleri

Aşağıdaki ağ şeması örneği, bir Kubernetes cluster içinde worker node'ların master node'lara erişimini sağlamak için hangi bağlantı noktalarının yapılandırılması gerektiğini açıklar. Kubernetes cluster'ı içinde hem genel hem de özel ağ bölgeleri arasında sağlıklı iletişimi sağlamak için belirli bağlantı noktalarının açılması gerekir.


Diyagramda belirtilen bağlantı noktaları, Kubernetes Worker Node'larının Master Node'larla kesintisiz iletişim kurabilmesi için gereklidir. Bu portlar, cluster'ın doğru şekilde çalışması için tüm Worker Node'lardan Master Node'lara açık olmalıdır.


Not: Tüm default portlar değiştirilebilir ancak bu durumda işlemler ve izinler dikkatle yapılmalıdır.

Kubernetes Master Sunucuların Port Gereksinimleri

Master/Control Plane sunucuları için Worker sunuculara verilecek port izinleri ve açıklamaları:

PortAçıklama
6443/tcpKubernetes API server
8285/udpFlannel
8472/udpFlannel

Kubernetes Master Sunuculardan Worker Sunucularına Port Erişimi

Kubernetes Master/Control Plane sunucularından Worker sunuculara doğru olan bağlantılar, Kubernetes'in cluster bileşenleri arasındaki iletişim için gereklidir. Bu portlar, cluster'ın doğru şekilde çalışması için tüm Master Node'lardan Worker Node'lara açık olmalıdır.

Kubernetes Worker Sunucuların Port Gereksinimleri

Worker sunucular için Master/Control Plane sunuculara verilecek port izinleri ve açıklamaları:

PortAçıklama
10250/tcpKubelet API
8285/udpFlannel
8472/udpFlannel

Kubernetes Master Sunucular Arası Port Erişimleri

Kubernetes Master sunucular arası bağlantılar, Kubernetes'in cluster bileşenleri arasındaki iletişim için gereklidir. Bu portlar, cluster'ın doğru şekilde çalışması için tüm Master Node'lar arası açık olmalıdır.


Master sunucular arasında verilecek için port izinleri:

PortAçıklama
6443/tcpKubernetes API server
2379:2380/tcpEtcd server client API
10250/tcpKubelet API
8472/udpFlannel
8285/udpFlannel

Not: Ingress Controller, Metric Server, Rancher, Lens vb uygulamalar kullanılacak ya da Kubernetes bulut ortama kurulacaksa port gereksinimleri harici olarak kontrol edilmelidir.

Kubernetes High Availability (Yüksek Erişim) Cluster Kurulumu Yapılırken.

Kubernetes Master/Control Plane ve Worker sunucularında, Load Balancer'ın VIP'sine 6443 portu üzerinden erişim sağlanacak şekilde gerekli izinler tanımlanmalıdır. Bu VIP, Master node'ların 6443 portlarına yönlendirilerek yük dengelemesi gerçekleştirilir.

Apinizer Bileşenlerinin Port Gereksinimleri

Kubernetes dış erişimler için varsayılan olarak 30000-32767 aralığındaki portları kullanır. Apinizer için belirli varsayılan portlar kullanılmasına rağmen bunlar isteğe bağlı özelleştirilebilmektedir.


Worker sunucuları için:

PortAçıklama
32080Api Yönetim Konsoluna erişim için varsayılan NodePort.
30180Api Portal erişimi için varsayılan NodePort.
30080Apinizer API Gateway erişimi için varsayılan NodePort. Birden fazla ortam kurulacaksa farklı portlar da kullanılabilir.

Mongodb sunucuları için:

PortAçıklama
25080Apinizer konfigürasyon veritabanı portu.

Elasticsearch sunucuları için:

PortAçıklama
9200API Trafik loglarının yazıldığı Analitik sunucusunun uygulama portu.

Port Erişim İzinleri İçin Talep Şablonu

Kubernetes Master ve Worker Sunucular İçin Port Erişim Talepleri:

SOURCE:
<KUBERNETES_WORKER_IP_ADDRESSES>

DESTINATION:
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES>
6443/tcp
8285/udp
8472/udp
---

SOURCE:
<KUBERNETES_WORKER_IP_ADDRESSES>

DESTINATION:
<MONGODB_IP_ADDRESSES>
25080/tcp
---

SOURCE:
<KUBERNETES_WORKER_IP_ADDRESSES>

DESTINATION:
<ELASTICSEARCH_IP_ADDRESSES>
9200/tcp
---

---

SOURCE:
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES>

DESTINATION:
<KUBERNETES_WORKER_IP_ADDRESSES>
10250/tcp
8285/udp
8472/udp
---
# Eğer Kubernetes Control Plane sunucuları arasında serbest erişim yok ise
SOURCE:
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES>

DESTINATION:
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES>
6443/tcp
2379:2380/tcp
8472/udp
8285/udp
TEXT


Kubernetes High Availability (Yüksek Erişim) Cluster Kurulumu Yapılırken. Load Balancer Erişim Ve Yönlendirme Talepleri

SOURCE (Bu adrese sadece Kubernetes Cluster'ı erişimi gerekli, harici bir erişim olmayacak):
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES>
<KUBERNETES_WORKER_IP_ADDRESSES>

DESTINATION:
<VIRTUAL_IP>
6443/tcp

---
ROUTING:
<KUBERNETES_CONTROL_PLANE_IP_ADDRESSES> 
tcp/6443

---
İstenirse bu Yönlendirme virtual ip'sine bir dns de tanımlanabilir.
SSL kurulum aşamasında sunuculardan biri üzerinden oluşturulacak ve onunla iletişim sağlanacak.
Yönlendirme yapan sistem üzerinde SSL Kontrolü yapılmayacak. 
Bu ssl her sene kubernetes üzerinden yenilenecektir.
TEXT

Referans olması açısında bu ayar HAProxy LoadBalancer uygulamasında aşağıdaki gibi yapılır:

frontend kubernetes-cluster
  bind *:6443
  mode tcp
  option tcplog
  default_backend kubernetes-master

backend kubernetes-master
  option httpchk GET /healthz
  http-check expect status 200
  mode tcp
  option ssl-hello-chk
  balance roundrobin
    server <master1hostname> <MASTER_1_IP>:6443 check fall 3 rise 2
    server <master2hostname> <MASTER_2_IP>:6443 check fall 3 rise 2
    server <master3hostname> <MASTER_3_IP>:6443 check fall 3 rise 2
YML