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>
YML


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>
YML


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>"}]}'
YML


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>
YML


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>"]
}
POWERSHELL


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
POWERSHELL