Keyclock Kurulumu

Deniz TÜRKMEN
4 min readNov 14, 2022

--

Docker & Kubernetes

Merhabalar,

Bu yazımda kurulumunu inceliycez ilk olarak nedir, hangi amaçla kullanıyoruz.

Keycloak: Modern uygulamalara ve hizmetlere yönelik açık kaynaklı (Open Source) bir Kimlik ve Erişim Yönetimi (IAM) çözümüdür. Keycloak, çok az kodla veya hiç kod olmadan Auth (Authentication) ve Auth (Authorization) katmanlarını kullanarak merkezi bir erişim kapısı sağlar. Keycloak tipik olarak, ortamınıza erişim talep eden bir kullanıcının veya sistemin kimliğini doğrulamayı amaçlar ve o kullanıcının veya sistemin hangi rollere ve varlıklara erişimi olduğunu söyleyen bir dizi kuralı değerlendirir.

İlk olarak docker ile kurulum yapalım. Docker-compose yaml dosyamıza bakacak olursak.

Değişken değerlerine bakacak olursak.

Şimdide docker compose dosyamızı başlatalım Bunun için,

docker-compose up -ddocker psdocker-compose ps

Container’ımızın ayağa kalktığına göre postgresql’ümüzde gerkli tablolar oluşmuş mu kontrol etmek için,

docker exec -it container_name bashpsql -U username\l\dt

Tarayıcından “localhost:8080” yada “192.168.1.23:8080” gittiğimizde,

username          keycloakpassword          keycloak

Görüldüğü gibi başarılı şekilde kurulum tamamlanmıştır.

Şimdide Kubernetes ile kurulum gerçekleştirelim. İlk olarak minikube başlatalım.

minikube start --cpus=4 --memory=8000

Postgresql yaml bakalım ve deploy edelim. Öncesinde bir tane keycloak adında namespace oluşturalım.

kubectl create ns keycloakkubectl get ns
kubectl apply -f postgres.yamlkubectl get secrets -n keycloakkubectl get svc -n keycloakkubectl get pods-n keycloak

Keycloak yaml bakalım ve deploy edelim.

kubectl apply -f keycloak.yamlkubectl get secrets -n keycloakkubectl get svc -n keycloakkubectl get pv -n keycloakkubectl get pvc -n keycloakkubectl get pods -n keycloak

Keycloak.yaml bilmemiz gereken en önemli nokta,

  • DB_ADDR: postgresql-svc

Burada postgresql servisimisin ismini yazıyoruz. Eğer servis ismini vermezseniz migrations gerçekleşmez ve pods ayağa kalkmaz.

Son olarak da postgresql migrations takip etmek için keycloak loglarını izliyoruz.

kubectl logs -f -n namespace_name pod_name

Postgres database tablolarına bakalım.

kubectl exec -it -n keycloak postgresql-statefulset-0 -- bashpsql -Ukeycloakdb -dkeycloakdb\l -> liste\dt -> table list

migrations gerçekleştiğine göre şimdide keycloak UI login olabiliriz. Bunun için,

minikube service list
username       keycloakpassword       keycloak

Keycloak.yaml tanımladığımız username ve password ile giriş yapıyoruz.

Evet yukarıdaki şekilde görüldüğü gibi başarılı şekilde gerçekleşmiştir.

Son olarak bir tane ingress yazalım. Daha öncesinde minikube ingress enable edelim.

minikube addons listminikube addons enable ingress
kubectl apply -f keycloak-ingress.yamlkubectl get ingresses.networking.k8s.io -n keycloak
sudo vim /etc/hosts

altına domain’imizi ekleyelim.

Daha sonra tarayıcıdan “web.keycloak.com” adresine gittiğimizde,

Yukarıdaki şekilde görüldüğü gibi başarılı şekilde keycloak UI login gerçekleşmiştir.

--

--

Deniz TÜRKMEN
Deniz TÜRKMEN

No responses yet