8-K8s - Создание и Управление - PODS - Кубернетес на простом языке
Vložit
- čas přidán 16. 03. 2020
- #devops #девопс #kubernetes #ityoutubersru
github.com/adv4000/k8s-lessons
Испольщуйте Image - tomcat:8.5.38
В версиях новее там убраили страничку по умолчанию
Если помог, поддержите парой баксов, хотябы Канадских :) www.paypal.me/DenisAstahov
Теперь это пишется так: kubectl run hello --image=adv4000/k8sphp:latest --port=80
Так как kubectl run --generator уже не используется оно устарело. Спасибо Денису за такие интересные уроки и с Новым 2022 годом всех!
спасибо!
Вот только разобрался с этим и хотел поделиться, а тут уже все придумано за нас. Иногда надо сразу читать комментарии ))
В дополнение: теперь правильней выполнять команду kubectl exec hello -- date, так как старая команда без дефисов скоро будет удалена в следующих итерациях кубера.
да, вы правы, так и есть
P.S. по старой привычке бекендера сначала полез в официальную документацию, потом пару форумов покурил, и только потом, когда все получилось - решил коменты почитать
kubectl run hello --image=adv4000/k8sphp:latest --restart=Never --port=80
kubectl run mypod --image=nginx --restart=Never ==> for Pod
kubectl run mydep --image=nginx ==> for Deployment
Блиин! Как легко объясняешь! просто слов нет! РЕСПЕКТ!
Автор огромное спасибо ,все понятно ,простым языком ,лайк прожал😊
Отличные уроки, очень легко «зашло» - всего пара вечеров и настроена вся инфраструктура, запускаются и работают свои images, поэкспериментировал с yaml Ранее делал несколько подходов к куберу - но очень тяжело шло - бросил:) Спасибо, прошу продолжения:) подписался...
да все очень доходчиво, я тоже другие уроки по куберу пытался, не шло, а тут уже и первое апп запустил :D
Крутые уроки! Объясняешь всё простым и понятным языком. Уже жду продолжения)
Денис, как всегда шикарно!
Великолепные уроки, спасибо! И ждем продолжение!
Денис! Спасибо за уроки! Как только заработаю первые деньги с IT, сразу тебе закину)
Денис, огромное вам спасибо! На данный момент по тихоньку вкатываюсь в DevOps из сис админа. Ваши уроки очень кстати! Ждем продолжения
Большое спасибо за ваш курс. Все понятно и даже увлекательно!
просто шикарно!!! надо продолжение, жду с нетерпением :)
08:02 - "Всё важно в нашей жизни" :) Смотрю только твои видео, многому научился, потому что подача у тебя самая лучшая, и информации много) Спасибо что учишь!
Спасибо за видео! Все очень интересно и понятно! Улыбают моменты, когда Денис спрашивает, помним ли мы нужную команду или еще что-то 😉
Для тех, кто запускает kubectl не у себя, а на удаленном сервере, команда выглядит так:
kubectl port-forward --address 0.0.0.0 my-web 8000:80
Не забываем открыть порт 8000, или какой вам нравится. :)
Спасибо, в очередной раз выражаю свою искреннюю благодарность!
Уникальный и понятный контент! Лайк однозначно.
Автор, спасибо тебе большое! Очень классно объясняешь!
спасибо Денис!!! Все очень доступно и понятно )))
Госпади, до чего охренительный канал. Спасибо!
за список команд отдельное спасибо в предыдущих уроках этого не хватало
Очень крутой и понятный урок! Большое спасибо!
Лайк. Ждём продолжения
Спасибо за уроки!!! Они Очень крутые
И за скриншоты в конце спасибо, контент лучше чем у других блогеров в ютубе) Сразу видно когда человек старается, поэтому тебя и смотрят
Спасибо!
Список команд в конце радует. Спасибо.
Денис, большое спасибо за урок!
P.s. Я часто пользуюсь не kubectl describe, когда нужно посмотреть на какой ноде бежит pod или какой у него ip, а командой kubectl get pods -o wide, она выводит информацию о подах с их ip и на каких нодах они запущены.
Просто, понятно, запоминается. Спасибо!
Шикарные уроки, спасибо, братишка!
Не могу начать работать с этим пока сам не поставлю и не столкнусь со всеми косяками! Так вот что скажу, почти неделю пилю ансибл-роли для установки к8с. Чет так затянуло, что пришлось подключить джиру и забить туда задачу со ссылкой этого ролика, а то забуду посмотреть)
Денис, тебе огромный "респект" за уроки.
огромное спасибо всё доходчиво понятно. Вы топ 1
Спасибо за видео.Коммент в поддержку!
Одного лайка мало, продолжения пожалуйста!
Ждём продолжения :)
крутые уроки!!!
спасибо автору
Крутые уроки, спасибо
Привет Денис,благодарность за великолепные уроки.
Можешь добавить в рубрику по урокам кубернетиса как работать с внешними дисками(volumes)?
Благодарю
Все нравиться, все видео отличные
Спасибо, друг! Прям очень.
Запускал локально на minikube на винде. Столкнулся с ошибками в статусе Pod ErrImagePull и ImagePullBackoff. Не хотел качать adv4000/k8sphp:latest. В общем, что помогло: подключился (minikube ssh). Скачал image (docker pull adv4000/k8sphp:latest). Вышел (exit) и вбил kubectl run hello --image=adv4000/k8sphp:latest --port=80. Кубер нашёл локальный образ и запустился.
Закрепить бы этот комментарий для пользы общества
Долго я бродил вокруг да около кубернетиса своего локального (научился запускать еще в августе) не сильно понимая, что там происходит, но потом продолжил смотреть уроки :)) Сложно для меня лично то, что я перескакиваю на другие темы типа терраформа и ансибла. То есть "а вот как сейчас поднимем аргосд из терраформа!" (и оно работает), без основы.
Спасибо большое!
Это было прекрасно
требуем следующих уроков!
Круто полезно!
Спасибо!
Суперрр
Нормальный курс, так же как и курс по ansible, но кажется, он был бы еще лучше и при этом оставался бы таким же легковесным в усвоении, если бы были освещены такие темы, без которых сложно представить себе даже простой real world проект, как:
- Affinity/AntiAffinity c labelSelector и MatchExpression;
- ConfigMaps и работа с ними из подов, а так же работа с секретами;
- StorageClass/PersistentVolume/PersistentVolumeClaim
ЗЫ: по ansible курсу было бы хорошим дополнением в урок по templates и jinja про filters и jinja-условия
Спасибо за труд, уроки просто крутые 👍 Лучшие, на русском языке :)
Спасибо огромное! Очень хотелось бы хоть сколь-нибудь скромно отблагодарить, я думаю у многих твоих зрителей есть проблемы с PayPal было бы здорово если бы было альтернативная площадка для донатов.
Лайка хватит! Спасибо
привет из будущего)))
👏👏👏👏👏
Огромное спасибо за твои уроки! Скажи, пожалуйста, работал ли ты с ELK? Если да, то не думал сделать курс?
Нет, не работал
Шикарное видео, очень просто и информативно ❤️ единственное посоветовал бы оптимизировать видео что бы ты не повторялся и чуть больше использовал технического языка, а так респект 👍
הבנתי שאתה ישראלי אע? xD תודה לך על השיעורים אתה מאוד עוזר חחח.
:) נכון
@@ADV-IT מאיפה אתה אם זה לא סוד?
@@jacobgelvikh1619 מקנדה
@@ADV-IT אעעע למה עזבתה אותנו, סבבה חחח. ועוד פעם תודה לך על הסרטונים.
0 дизлайков, огонь!
Денис, спасибо за уроки по k8s! Если я правильно понял у тебя локально поднят кластер на ubuntu? Это делается по аналогии с уроком по поднятию кластера на Windows или каким-то другим способом?
У меня k8s на этом уроке был в Google Cloud Platform
Если помог, поддержите парой баксов, хотябы Канадских :) - Мы в России живем, тут нет ни Канадских, ни PayPal. Хотя бы BTC кошелек оставьте
Привет. Мужик, видосы супер, но главноый вопрос, где остальные части? Очень жду.
Представляю, что рассказывает Коля из реальных пацанов)
Да голоса очень похожи)
со словом container явные траблемы)
@ADV-IT, можешь обяснить если в одном поде бежит два контейнера и с одним и тем же портом 80, то когда я сделаю форвардинг какой контейнер вызовится? контейнер это же по сути операционная система? выходит что это две операционки бегут?
форвардить будет на тот контейнер который первым поднимется в поде.. визуально предсказать можешь если сделаешь describe на этот под и посмотришь в Events... только практического применения такой ситуации сложно найти)
Я правильно понимаю, что использование более 1 контейнера в поде не рекомендуется, если эти контейнеры по своей сути различны? Например, 1 контейнер апи и 1 контейнер реакт апп? А в случае, если в поде 1 контейнер это django api, а второй это ngninx сервер (который нужен для джанго), то это ок, и наоборот хорошо, так как при увеличении к-ва реплик мы увеличиваем и апи, и ngnix сервер?
Расскажите пожалуйста про namespace - очень нужно
Генерато --generator=run-pod/v1 больше не актуален? У меня он сообщает о Error: unknown flag: --generator.
Да, генераторы выкинули уже. Пользуйтесь проще: kubectl run podname --image=imagename
НРМАРЕЗЫЧ !
Видео топчик, жаль что забросил(
Продолжение есть на Udemy
Привет, очень хорошие уроки у тебя, хотел спросить а язык ruby подойдет или только python must have?
Подойдет тот который популярен в твоей стране
@@ADV-IT я в россии, если в будущем хочу найти работу забугром и только в вебе, что можешь посоветовать?
@@deepparser3621 я не программист но вижу что .net мало используется. Java , Node.js и Python больше.
@@ADV-IT а в канаде какие специалисты больше востребованы?
@@deepparser3621 все что связано с Cloud популярно и много работы.
Было бы класно увидеть пример выполнения работы - типовых задач, инженера k8s.
Жаль рубрика зависла...
На Udemy есть еще два видео про K8s
היי דניס,
הסברים מאוד יפים וגם ממש השתפרת בצורת דיבור :)
תגיד אתה מתכנן לאחר זה לעלות כל הקורס גם ל-udemy ?
Ура, нашёл :)
Там 9 и 10 урок, спасибо огромное ^___^
@@Epuckop תודה על התמיכה!
Кто-нибудь объясните, почему у меня статус "Pending" зависает, в описании пишет reason:"Scheduled" , message:"Successfully assigned default/project to work1". При попытке удалить все так же зависает в статусе удаление.
хорошие туториалы, только чувак, погугли утилиту watch я тебя оч прошу
если выполняешь упражнение в play-with-k8s то доступ снаружи непонятно как сделать :с курлом открывается
Спасибо) 9, 10 эпизоды будут доступны?
Как-нибудь
@@ADV-IT про Deployment расскажите пожалуйста.
Огромное спасибо за уроки! Когда ждать продолжения курса по Kubernetes?
На Udemy есть уже давно, тут как-нибудь позже выложу
ADV-IT так и придётся в удеми этот деньги платить.... А то до как-нибудь позже недождусь(((
@@user-fc4iv9xv1j любой труд должен быть оплачен)
@@ADV-IT а можно ссылочку на Udemy, пожалуйста?
@@tatiananikitina7727 www.udemy.com/user/denis-astahov/
Денис,здравствуйте,не подскажите ,как развернуть облачную инфраструктуру на основе k8s?
Может у вас есть какие-нибудь материалы по-поводу этого
Есть, Урок по K8s номер 3, урок по K8s номер 4.
@@ADV-IT Спасибо!
Ошибка ErrImagePull была из-за приватного репозитория на регистре.
Честно говоря, не понял как пофиксить. docker login не помогает ни на хосте ни в миникубере
Здравствуйте, используете ли вы helm для развертывание приложений?
конечно
@@ADV-IT А сделай, пожалуйста урок с helm.
а как соединить 2 пода между собой, например, если в первом крутится приложение, а во втором БД?
Это делается через Service
Denis, kakoi virtualbox ty ispolzuesh? Ya na Mac ustanovil VirtualBox Ubuntu, pipec slow rabotaet. Spasibo zaranee !!!
minikube сам устанавливает свой image в VirtualBox
чето мне не совсем логика понятна. POD запускается на кластере, но проброс порта делается на локальной машине - ноутбуке, который сейчас работает, через 5 минут уснул. то есть чтоб было красиво - в продакте,где этим пользуются люди - это должен быть сервак который работает 24/7 у которого единственная функция - проброс порта на POD в кластере k8s?
1.в большинстве случаев тебе не нужно будет в проде ходить на поды напрямую, будет отдельная точка входа для кластера и балансировщика, который будет уже направлять куда нужно
2. это не отдельный сервак, это просто отдельный процесс на твоем серваке, при этом наверняка есть возможность сделать это через конфиг
Подскажите кто знает, как запустить cluster используя свою ami из aws parameter store? Заранее благодарю.
Имею ввиду как сделать resolve ssm параметра в конфиг кластера.
Установи github.com/aws/secrets-store-csi-driver-provider-aws
Денис, а в этом примере где кластер поднят? На локальной машине?
в Google Cloud помоему
@@ADV-IT Все , спасибо , разобрался.
привет, как всегда все супер,
когда будет продолжение?
Надеюсь скоро
@@ADV-IT хотел купит курс на udemy а его там нет(( (думал что там может быть полная версия как с terraform)
@@user-uo4jm6yh1w Присоединяюсь к просьбе :)
ПС: Могу предположить что он там появится после того как будет полностью закончен, но это лишь мои предположения
Почему в манифесте перед «name» иногда используется дефис, а иногда нет.
Ну и вообще, не только «name».
Спасибо за ролики!
Это синтаксис YAML формата, дефис ставится если определеяется LIST и твоя строка это наало элемента этого LIST
@@ADV-IT תודה רבה ☺️
А когда планируется продолжение?
Надеюсь скоро, время не очень много
У меня вопрос, могу ли я как нибудь зайти на pod с браузера если я хочу также посмотреть страчничку сайта и запускаю его через play with kubernetes?
Имхо, никак не зайдешь с браузера. Пока не сделаешь expose k8s не выпустит наружу наш pod. Я прямо в том play-with-k8s с помощью curl проверил развернутый pod, так для себя. Локально там все видно, работает.
Денис, может както запилишь онлайн вебинарчик, вопрос-ответ ?)
Делал уже пару раз Live Stream, скоро опять сделаю
@@ADV-IT шикарные видосы! а про секурность будет небольшой обзор? как например в selinux заворачиваете ? Спасибо!
На текущий момент команда kubectl exec hello date не работает, т.к сейчас актуально kubectl exec hello -- date, после двух тире писать команду)
При входе в под через exec sh появляется (app-root) (app-root) sh-4.4 и становится невозможно активировать виртуально окружение. Как это можно решить?
Если использовать kubectl exec -it podnam -- /bin/bash то интерпретатор запускается в первом контейнере из файла манифеста, а вот как выбрать контейнер? Ни понимяу!
Привет, очень классные уроки! И очень кстати. Хотела попросить совет, если не сложно, я сейчас пишу диплом, тема: "Разработка системы автоматизации развертывания приложений в среде Кубернетес". Я так понимаю, что я должна написать какой-нибудь скрипт, который бы брал какое-то приложение из, например, гитхаба и разворачивал его в кубернетесе с помощью дженкинса. Не могли бы вы подсказать немного или направить, как это сделать?( Никогда не писала скрипты, а времени осталось мало, знаю, сама виновата, но вдруг вы можете как-то помочь)
Тебе нужно сделать Docker Image со своим приложением,
Так его сделать куча примеров есть, я тоже показал как это сделать.
Можно Bash скриптом, а можно и Jenkins чтобы это делал.
Когда у тебя есь Docker image и K8s Cluster
задеплоить твой Image уже легко, можно опять же Bash скриптом, а можно и Jenkins чтобы это делал.
@@ADV-IT хорошо, спасибо)
@@user-lh3mg9en6w Вам все еще актуально?
@@vasilypodguzov444 Диплом уже сдала, но тема все равно интересует)
CZcams каг-бэ намекает:
9. Видео с ограниченным доступом.
10. Видео с ограниченным доступом.
Ждем-с. ;)
тут как с терраформ, давно можно на udemy купить и посмотреть)
У меня есть вопросы. как внешние пользователи могут читать из тома(PVC) k8s? как это возможно?
Каким образом, можно автоматически обновлять кластер, например если изменился исходный образ приложения? Без прописывания в ручную apply
поставить ArgoCD и сделать GitOps, как нибудь сделаю урок по ArgoCD
@@ADV-IT понял, спасибо большое за ответ. Такой урок был бы супер полезен)
Где продолжение?)
Не работает port-forward,что делаю не так? Микрокуб развернут на убунту сервер, к которой цепляюсь по ssh на компе с виндой, при проброса порта открываю браузер с компа, ввожу адрес убунту сервера с проброшенным портом и получаю Connection refused
Сам нашел как сделать. К команде добавить --address='0.0.0.0'
А как тогда создать Под на определенной Ноде? Вот допустим Под был на второй, нижней ноде, а я хочу на верхней, чтобы там Под создался.
Нужно сначала дать labels твоим нодам и делать nodeSeletion в Pods
@@ADV-IT Денис, большое спасибо!🤜🏻🤛🏻
Создала кластер в гугл, как показывали. Создала pod, добавила туда image. Когда делаю forward port, чтобы посмотреть работу pod через localhost, выдает -
E0428 16:49:52.009542 3435 portforward.go:400] an error occurred forwarding 7788 -> 85: error forwarding port 85 to pod 8ad2716acb1807f8583e52c5a191fcacf5f0ed8a5236ba6953135e7d0eb80be6, uid : exit status 1: 2020/04/28 13:49:51 socat[11265] E connect(5, AF=2 127.0.0.1:85, 16): Connection refused
В интернете написано, что надо установить socat в node. Как это делается?
Ничего не нужно устанавливать
может у тебя FireWall rules не открывают порты
@@ADV-ITя создавала pods через generator - была вот эта ошибка, которая выше, создала через yaml - все работает =)
Жду с нетерпением следующего видео. Есть время на карантине - надо ловить момент
Поднял кластер на амазоне. Создал поды. Проверяю по describe и вижу контейнеры с nginx и tomcat
Но делая портфорвард в браузере нет страничек. Вместо дставляю ip сервера который в describe получаю.
Локально на компе делаю и норм. В амазоне не получается.
Я так понял доступ только через локалхост возможен? Напрямую по ip сервера амазона не пустит?
пустит, просто порты в SecurityGroup открой
@@ADV-IT да я пробовал. Не хочет) И вот сейчас увидел что при создании кластера несколько SG было тоже создано. В какой из них порт открывать хз.
И ещё вопрос. Ты в работе с кубером Lens ide используешь? Вроде симпотичная)
Load balancing ещё в разработке?
K8s Deployments в разработке пока-что