Private/Local Docker Registry Kullanımı
Neden Docker Kayıt Defteri'ne İhtiyacınız Var?
Public Docker image'ları herhangi bir zamanda güncellenebilir. Önceki imaj ile aynı etikete sahip bir imaj güncellemesini durduracak hiçbir şey yoktur.
İmaj dosyalarını kendi sisteminize indirip kullanmayı seçtiğinizde güncellemelerin yayınlanması üzerinde kontrol sahibi olursunuz.
Internete bağlı olmayan sunucular
Local Kayıt Defteri (Local Docker Registry) kullanımı, eğer Apinizer'ın çalıştığı sunucuların hub.docker.com'a erişimi yok ise versiyon güncelleme işlemlerini gerçekleştirmenin en kolay yoludur.
Apinizer İmajlarının Private/Local Docker Registry ile kullanımı
Kubernetes'te Apinizer deploy dosyalarına yazım örneği aşağıdaki şekildedir:
image: <MY_REGISTRY_ADDRESS>/apinizer-manager:<APINIZER_VERSION>
Bu işlem Kubernetes 1.24.x versiyonundan sonra ImagePullSecret bilgisi ile birlikte ayarlanmalıdır. Detaylı bilgi için bir sonraki adımı inceleyebilirsiniz.
Apinizer eğer sisteminizde Kubernetes +1.24.x versiyonu kuruldu ise
Öncelikle her bir namespace için ilgili docker registry'nin bilgilerini içeren bir secret oluşturulur
kubectl create secret docker-registry <MY_REGISTRY_KEY> \
--docker-server=<REGISTRY_SERVER> \
--docker-username=<USERNAME> \
--docker-password=<PASSWORD> \
--docker-email=<EMAIL> \
-n <NAMESPACE>
Bir önceki adımda oluşturulan secret bu adımda her bir secret kendi namespace'indeki serviceaccount'a olmak üzere eklenir. Apinizer için varsayılan serviceaccount ismi "default"'tur.
kubectl patch serviceaccount default -n <NAMESPACE> -p '{"imagePullSecrets": [{"name": "<MY_REGISTRY_KEY>"}]}'
Oluşturulan secret'lar ve kullanılan serviceaccount'lar aşağıdaki komutlar ile kontrol edilebilir.
kubectl get secrets -A
kubectl get serviceaccount -n <NAMESPACE>
Bu işlemlerden sonra bu namespace'lerde yeni oluşan her bir pod, ImagePullSecrets değeri dolu olarak gelecektir.
Apinizer eğer sisteminizde Kubernetes 1.18.x versiyonu ve Docker uygulamaları ile kuruldu ise
Varsayılan olarak docker, docker kayıt defterine bağlanmak için https kullanır. Ancak, özellikle güvenilir bir ağ üzerindeyseniz, güvenli olmayan bir kayıt defterini kullanmak için kullanım örnekleri olabilir. Bu, dahili kullanım için CA imzalı sertifika ihtiyacını veya tüm docker düğümlerinde kendinden imzalı sertifikaya güvenmeyi ortadan kaldırır. Güvensiz Kayıt Defteri'ni Docker Engine'e eklemenin adımları aşağıda verilmiştir.
/etc/docker/daemon.json dosya içindeki tüm satırlar silinip aşağıdaki satır eklenir.
vi /etc/docker/daemon.json
{
"insecure-registries" : ["<MY_REGISTRY_ADDRESS>"],
"registry-mirrors":["https://<MY_REGISTRY_ADDRESS>"]
}
Yukarıdaki satırı /etc/docker/daemon.json docker registry'e bağlanacak tüm sunucular üzerinde yapılması gerekmektedir.
Yukarıdaki değişiklikleri yaptıktan sonra Docker'ı yeniden başlatın.
systemctl restart docker