Bu yazımızda Permission Manager yüklemesinden bahsedeceğiz. Permision Manager; Kubernetes üzerinde Pod ve Namespace’leri kontrol etmek için bağlantı kurduğumuz Lens Desktop uygulamasında admin ve kısıtlı kullanıcı profilini ayarladığımız bir ortamdır.
Kullanıcılara yetkili ve kısıtlı erişim kullanıcıları şeklinde ayırmanın yanında namespace özelinde de kullanıcıları yetkilendirmemizi sağlar.
Bize kurulum sonunda web panelinden erişim sağlayarak ilgili ayarları yaptıktan sonda “Lens Desktop” uygulamasında bağlantı sağlarken kullanabilmek adına bir config dosyası oluşturur.
Kubernetes kurulu ortam üzerinde;
kubectl create namespace permission-manager komutu ile permission-manager namespace’ini oluşturuyoruz.
Resim-1
[root@sedat-test-k8s ~] vim permission.yaml # permission.yaml dosyasını oluşturuyoruz.
apiVersion: v1
kind: Secret
metadata:
name: permission-manager
namespace: permission-manager
type: Opaque
stringData:
PORT: “4000” # Permission manager bağlantı portu
CLUSTER_NAME: “my-cluster” # oluşturulan kubeconfig dosyasında kullanılacak cluster adı..
CONTROL_PLANE_ADDRESS: “https://10.x.x.x:6443” # host IP adresi
BASIC_AUTH_PASSWORD: “Password123” # arayüz paneline giriş sağlarken kullanılacak şifre oluşturulur. Kullanıcı adı default “ admin ” olarak girildiği için burada bunun için bir işlem sağlanmaz.
Düzenleme sonunda vim panelinden “:wq! “ kaydet ve çıkmaya zorla diyerek çıkış sağlarız.
Sonrasında sırasıyla;
kubectl apply -f ./permission.yaml
kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.7.1-rc1/crd.yml
kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.7.1-rc1/seed.yml
kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.7.1-rc1/deploy.yml
Komutlarını çalıştırıyoruz.
Resim-2
kubectl get svc permission-manager -n permission-manager #Komutu ile namespace’in durumunu kontrol ediyoruz.
Web arayüz paneline “http://IP_adresi:4000″ şeklinde erişim sağlayabiliriz.
Resim-3
- Create New User alanına tıklayarak yeni bir kullanıcı oluşturabilirsiniz.
- Users panelinde var olan kullanıcılarınızı listeleyebilirsiniz.
Resim-4
Username: Oluşturulacak kullanıcının adı yazılır.
TEMPLATES:
Template
User’ın kullanım durumu bağlantıda nasıl olacak “ developer ” modunda mı yoksa “ operation ” modunda mı bunun seçimi sağlanır. Detaylarına template üzerine gelerek ulaşabilirsiniz.
Namespace
Erişmesi istenilen namespace’ler listelenir. Kullanıcı için hangisine yetki verilmesi isteniyorsa bu seçilir. Tüm namespace’lere erişim verilecek ise (önerilmez) “All Namespaces” seçeneği işaretlenir.
Access To Cluster Resouces (Non-Namespaced)
Kaynaklara erişim nasıl olmalı user için seçimi yapılır ve kaydet seçeneği ile işlemden çıkılır.
Sonrasında bağlantı için ;
Kullanıcı seçilir, show kubeconfig for user alanına tıklayıp Lens Desktop bağlantısında kullanılacak olan config dosyası kopyalanır.
Kullanıcı’nın yanında yazan “default” seçeneği kullanıcının yetkili olduğu namespace’i gösterir.
Resim-5
Not: Config dosyasında sertifika bilgileri yer almaz bunun için admin config içerisindeki (admin config’e erişim için sunucu üzerinde“ cat /root/.kube/config” komutu ile ulaşabilirsiniz. ) alan kopyalanır ve user için alınan config içine “certificate-authority-data” ‘nın yanına kopyalanan sertifika bilgisi yazılır.
Lens Desktop bağlantı ekranı;
Resim-6
Kullanıcının yetkili olduğu namespace’i buradan da kontrol edebiliriz. Biz kullanıcımızı “default” namespace’inde yetkilendirdik. Şuan ortamda herhangi bir deployment olmadığı için ekranlar temiz görünüyor :)
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: permission-manager, lens, k8s, kubernetes, linux, namespace, pods, install, config, lens desktop, lens desktop nedir