Kubernetes İpuçları #1 : Statik IP adresi kullanmak

Kubernetes üzerinde servisleri dış dünyaya açmanın birden fazla yolu var. En kolayı Service objesini type=LoadBalancer ile kullanmak olsa da bir çok networking marifetinden mahrum bırakıyor bizi. Bir çok senaryo eninde sonunda Ingress kullanmayı zorunlu kılıyor.

Problem

Uygulamayı dışarıya açmadan önce DNS kaydını bir IP adresine yönlendirmek, ya da Kubernetes objesini bir sebeple değiştirdiğimizde dahi uygulamanın aynı IP adresini almasını sağlamak.

ÇÖZÜM

Uyarı : Şu an sadece Google Cloud platformunda çalışıyor.

Global statik IP adresimizi oluşturuyoruz.

gcloud compute addresses create benim-statik-ip-adresim --global

Ingress objemize kubernetes.io/ingress.global-static-ip-name annotation’ı ekliyoruz.

kind: Ingress
metadata:
name: nginx
annotations:
kubernetes.io/ingress.global-static-ip-name: "benim-statik-ip-adresim"
spec:
backend:
serviceName: nginx
servicePort: 80

Artık rahatça benim-statik-ip-adresim isimli IP adresini kullanabilirsiniz. Peki nedir bu IP adresi derseniz;

gcloud compute addresses \
describe
benim-statik-ip-adresim --global \
--format='value(address)'

komutu ile google cloud tarafından tahsis edilen adrese ulaşabilirsiniz.