Kurulum için Erişim ve Port Gereksinimleri
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ı:
Port | Açıklama |
---|---|
6443/tcp | Kubernetes API server |
8285/udp | Flannel |
8472/udp | Flannel |
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ı:
Port | Açıklama |
---|---|
10250/tcp | Kubelet API |
8285/udp | Flannel |
8472/udp | Flannel |
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:
Port | Açıklama |
---|---|
6443/tcp | Kubernetes API server |
2379:2380/tcp | Etcd server client API |
10250/tcp | Kubelet API |
8472/udp | Flannel |
8285/udp | Flannel |
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:
Port | Açıklama |
---|---|
32080 | Api Yönetim Konsoluna erişim için varsayılan NodePort. |
30180 | Api Portal erişimi için varsayılan NodePort. |
30080 | Apinizer API Gateway erişimi için varsayılan NodePort. Birden fazla ortam kurulacaksa farklı portlar da kullanılabilir. |
Mongodb sunucuları için:
Port | Açıklama |
---|---|
25080 | Apinizer konfigürasyon veritabanı portu. |
Elasticsearch sunucuları için:
Port | Açıklama |
---|---|
9200 | API 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
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.
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