Keycloak on Kubernetes

H. Alperen Selcuk
3 min readOct 21, 2024

bu yazımda sektörde çokça tercih edilen opensource IAM çözümü olan keycloak ı kubernetes nasıl yükleneceğini anlattım.

Keycloak nedir?

keycloak, opensource bir Identity and Access Management (IAM) aracı. kullanıcıların ve uygulamaların güvenli bir şekilde authentication ve authorization yapmasını sağlıyor.

Postgresql Configuration

keycloak ı kurmadan önce keycloak ın database olarak kullandığı postgresql için tanımlamalarımızı yapacağız.

işlemler için kullanılacak manfiestleri github repoma koydum oradan ilerleyeceğiz. repoyu clonelayalım.

git clone https://github.com/alperen-selcuk/keycloak-kubernetes.git

keycloak adında namespace create edelim.

kubectl create ns keycloak

daha sonrauser password için bir secret create edelim.

kubectl create secret generic keycloak-db-secret --from-literal=username="your-db-user" --from-literal=password="your-db-password" -n keycloak

daha sonra repo içindeki dosyayı apply edelim.

kubectl apply -f keycloak-kubernetes/db/.

postgrenin ayağa kaltıgını görelim.

şimdi surada keycloak operator kurmakta.

Keycloak Operator

operatoru manifestlerle kuracağız. benim yüklediğim 24.0.2 daha güncel versiyonu da vardır muhtemelen sitesine bakabilirsiniz.

kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/24.0.2/kubernetes/keycloaks.k8s.keycloak.org-v1.yml
kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/24.0.2/kubernetes/keycloakrealmimports.k8s.keycloak.org-v1.yml
kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/24.0.2/kubernetes/kubernetes.yml

CRD ler içinde keycloak gelmiş mi kontrol edelim.

şimdi keycloak kuralım.

Keycloak Installation

eper bir crt ve key iniz varsa keycloakda kullanmak için public domainde kullandığınız onu kullanabilirsiniz. yoksa self signed da yapabilirsiniz.

selfsigned devam edeceğim basitçe olması adına,

openssl req -subj '/CN=keycloak.alperen.com/O=Test Keycloak./C=TR' -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

ardından bu sertifika ve key i secret olarak ekleyeceğiz.

kubectl create secret tls keycloak-tls --cert certificate.pem --key key.pem -n keycloak

son olarak postgreye bağlanması için aynı user ve secret ile bu sefer keycloak ın kullanacağı bir secret oluşturuyoruz.

kubectl create secret generic keycloak-secret --from-literal=username="your-db-user" --from-literal=password="your-db-password" -n keycloak

bu adımlardan sonra artık repodaki keycloak Kind ile olan yaml i deploy edebiliriz.

bütün podlar Running. artık keycloak a giriş yapabiliriz.

Keycloak a erişmek için service objesini NodePort ya da Loadbalancer yapmamız gerekiyor. patchleyerek yapabiliriz.

kubectl patch service keycloak-service -n keycloak -p '{"spec": {"type": "LoadBalancer"}}'

loadbalancer ın aldığı IP ya da nodeport yaptıysanız Node IP sini host dosyama bu sertifikada verdiğim domain olarak gireceğim. ben AKS kullandığımdan Azure benim loadbalancera IP verecek.

artık keycloak arayüzüne erişebilirim.

work like a charm.

bir sonraki yazımda görüşmek üzere.

h.a.s.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response