Это часть 40 из путешествия Это длительное путешествие (360 день), поэтому иди, пожалуйста, проверьте предыдущие части, и если вам нужно идти в путешествие со мной, пожалуйста, обязательно следите, потому что я могу опубликовать более раз в 1 день Но, безусловно, я буду публиковать ежедневно хотя бы один 😍.
И я покрою много инструментов, когда мы движемся дальше.
сначала давайте удалите все, что мы сделали до сих пор
kubectl delete deployment myapp-deployment kubectl delete rs myapp-replicaset
Давайте воссоздать новый контейнер с нуля, будет организован на моем доке. Это же старая Но теперь нам нужно сделать несколько редактиров к изображению. Вот как мы можем построить и нажать в Dockerhub. Я собираюсь построить их как теги 1.0 и 2.0 1.0 так же, как старый, 2.0 будет иметь некоторые изменения на изображении. Таким образом, мы видим, как переключиться между двумя версиями. Это не мой API, поэтому у него нет файла составляющего докера. Мы можем добавить один, но Meh, давайте просто построим его без Docker-Compose, потому что это не имеет большого отношения к этому.
Если у вас уже есть папка DEVOPS, просто потяните ее, и вы получите новые файлы. Если не пойти и клонировать репо
Теперь после нашего изображения с тегом 1.0 и 2.0 мы можем начать. Вам не нужно их построить, потому что я уже делаю, они находятся на моем HUB Docker Hub, как правило, просто следуйте шагам, Kubernetes скачат их для вас, когда вы запустите файл YML.
Сначала давайте посмотрим, что имеем в папке сегодняшней лаборатории V1 и V2, содержат исходный код простых API, V2 имеют разное сообщение, чем V1, который будет показан. app_040_v1.yml app_040_v2.yml — это Kubernetes Configs, единственная разница между 1 и 2 Это версия в изображении здесь посмотреть на V1
Давайте создадим наше развертывание сейчас.
kubectl create -f app_040_v1.yml --record
Вы знаете процесс от более старой части, он собирается создать 6 стручек и … сделать перерыв, пока создается стручки
kubectl get pods
Все мои стручки готовы, поэтому мы приятно двигаться дальше
kubectl port-forward deployments/myapp-deployment 8080
Этот трюк начнет наше приложение, 8080 — это порт, который мы указываем в исходном коде. Теперь мы можем видеть в браузере, у нас наш V1 работает.
kubectl apply -f app_040_v2.yml
Вот как мы обновляем версию от V1 на V2
kubectl describe deployments myapp-deployment
Здесь мы видим, у нас новая версия 2.0
kubectl port-forward deployments/myapp-deployment 8080
Теперь давайте пойдем в браузер и обновите нашу страницу и посмотрите, что произойдет. Вуаля У нас сейчас V2 Live!
Я редактирую приложение в этой лаборатории, момент между фиксацией и клиентом см. Обновления — инженер DEVOPS. В продвинутых частях, когда мы толкаем наш код, все эти вещи будут автоматизированы, это называется спорным интеграцией и спорным доставкой как ярлык CI/CD. В нашем случае задача будет после совершения, которую он отправит версию в Docker Hub, затем Kubernetes справится с новым изображением. Автоматизация здесь будет описана в скрипте, написанном вами (DevOps). В основном это ядро дежопа.
Допустим, теперь нам не нравится эта версия, нам нужно откатиться к V1. Давайте посмотрим на историю и решите, что нам нужно откатиться
kubectl rollout history deployment/myapp-deployment
Мне нужна редакция 1, поэтому я вернусь к нему, используя:
kubectl rollout undo deployment/myapp-deployment --to-revision 1
Теперь давайте проверим, какую версию это
kubectl describe deployments myapp-deployment
Здесь мы можем увидеть, теперь версия вернулась к 1
kubectl port-forward deployments/myapp-deployment 8080
Теперь давайте пойдем в браузер и обновите нашу страницу и посмотрите, что произойдет. Это старая версия снова!
Оригинал: «https://dev.to/elkhatibomar/040-kubernetes-deployment-lab-2-306»