Keyclock Kurulumu
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.
Bu yazımızın da sonuna gelmiş bulunmaktayız. Araştırmalarım ve sektörde karşılaştığım senaryolar üzerine yazılarımı yazmaya devam edeceğim. Umarım faydalı bir yazı olmuştur. Yazımı okuduğunuz için teşekkürler.
Referanslar;