Пользователи Kubernetes: не укусываются по пределам тарифов.
Docker Hub Вводные пределы скорости Для изображения тянет ранее в этом месяце. Будучи реестрой по умолчанию для Docker Images, это один из самых больших в экосистеме за последние несколько лет, и это повлияет не только на пользователей Docker, но и настройки Kubernetes.
Пределы
Новые ограничения влияют на свободных пользователей. Больше нет неограниченных бесплатных вытяжений, вечеринка закончилась.
- Анонимные бесплатные пользователи : 100 контейнер тянется каждые 6 часов.
- Аутентифицированные бесплатные пользователи : 200 контейнер тянется каждые 6 часов.
- Оплаченные счета : Неограничен.
Сначала 100 тяги могут звучать как много. Но подумайте, что происходит, когда вы начинаете развертывание Kubernetes. Каждый стручок тянет независимо: если вы раскручиваете репликас с 100 репликами, это 100 тяги одновременно.
То же самое происходит, когда мы делаем обновление обморожения, откат, канальный релиз или сине-зеленое развертывание. Поскольку стручки продолжают нерестать, вероятность достижения предела увеличивается, и мы сталкиваемся с самыми раздражающими проблемами: случайные, неожиданные, избегаемые неудачи.
Что делать?
Что ты можешь сделать? Чтобы увидеть, затроните ли вы, проверьте, вытащите ли вы изображения из Docker Hub со следующей командой:
kubectl get pods --all-namespaces -ojson | jq -r '.items[].spec | .containers[] // [] += .initContainers[] // [] | .image' | sort -u
Если вы видите изображения без реестра (только имя изображения) или где реестр Docker.io
, ты тянешься из хаба Docker , так что продолжайте читать.
Затем проверьте, используете ли вы аутентификацию. Все изображения должны быть привлечены с аутентификацией. Анонимные тяги ограничены IP. Даже если вам не нужны много тяги, вы все равно можете повлиять на другие пользователи, которые делятся сетью.
Яркая сторона заключается в том, что добавление аутентификации действительно легко. Это занимает всего два шага. Вот как это сделать.
Шаг 1: Расскажите Kubernetes, как аутентифицировать
Первый шаг — добавить свое имя пользователя Docker Hub и пароль в кластер. Мы можем сделать это с kubectl. Вы должны сделать это только один раз на кластер.
$ kubectl create secret docker-registry my-dockerhub-account \ --docker-server=docker.io \ --docker-username=DOCKER_HUB_USERNAME \ --docker-password=DOCKER_HUB_PASSWORD
Шаг 2: Добавить ImagePullSecrets в развертывание
После того, как секрет будет безопасно храниться в Kubernetes, нам нужно только упомянуть об этом в манифесте развертывания. Для этого добавьте ImagePullSecrets
в Spec.Template.spec
дерево:
imagePullSecrets: - name: my-dockerhub-account
Например, если я хочу запустить развертывание с тремя nginx стручки, конечным результатом будет:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: imagePullSecrets: - name: my-dockerhub-secret containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
Это все, что вам нужно. Когда у вас есть шанс, kubectl применить
Новый манифест, чтобы начать использовать аутентификацию.
Береженого Бог бережет
Я надеюсь, что это поможет вам предотвратить ошибки, которые можно избежать. После проверки подлинности у вас должен быть более последовательный опыт и более высокий предел.
Я еще не слышал, чтобы кто -то достиг предела. Docker Hub сказал, что они будут применять их постепенно, поэтому я уверен, что это вопрос времени, пока кто -то не укусит новые кепки.
фото Джошуа Хохне на Неспособный
Оригинал: «https://dev.to/tomfern/always-use-imagepullsecrets-4n54»