- Kubernetes
- Документація
- Блог
- Навчання
- Карʼєра
- Партнери
- Спільнота
- Версії
- Інформація про випуск
- v1.34
- v1.33
- v1.32
- v1.31
- v1.30
- Українська (Ukrainian)
- English
- বাংলা (Bengali)
- 中文 (Chinese)
- Français (French)
- Deutsch (German)
- हिन्दी (Hindi)
- Bahasa Indonesia (Indonesian)
- Italiano (Italian)
- 日本語 (Japanese)
- 한국어 (Korean)
- Polski (Polish)
- Português (Portuguese)
- Русский (Russian)
- Español (Spanish)
Привіт Minikube
Цей посібник показує, як запустити зразковий застосунок у середовищі Kubernetes за допомогою minikube. Посібник надає образ контейнера, який використовує NGINX для відповіді на всі запити.
Цілі
- Розгортання тестового застосунку в minikube.
- Запуск застосунку.
- Перегляд логів застосунку.
Перш ніж ви розпочнете
Цей застосунок передбачає, що у вас вже є встановлений minikube. Дивіться Крок 1 в minikube start для інструкцій щодо встановлення.
Примітка:
Виконайте лише інструкції з Кроку 1, Встановлення. Решту розглянуто на цій сторінці.Вам також потрібно встановити kubectl. Дивіться Встановлення інструментів для інструкцій щодо встановлення.
Створення кластера minikube
minikube start
Відкрийте інформаційну панель
Відкрийте інформаційну панель Kubernetes. Це можна зробити двома різними способами:
Відкрийте новий термінал та виконайте команду:
# Запустіть новий термінал та залиште його працювати.
minikube dashboard
Тепер поверніться до термінала, де ви запустили minikube start.
Примітка:
Команда dashboard вмикає надбудову інформаційної панелі, відкриває проксі та запускає стандартний системний вебоглядач. Ви можете створювати ресурси Kubernetes в інформаційній панелі, такі як Deployment та Service.
Щоб дізнатися, як уникнути безпосереднього запуску вебоглядача з термінала та отримати URL-адресу для вебінтерфейсу, дивіться вкладку «Скопіювати та вставити URL».
Стандартно, інформаційна панель доступна лише з внутрішньої віртуальної мережі Kubernetes. Команда dashboard створює тимчасовий проксі, щоб інформаційна панель була доступна за межами віртуальної мережі Kubernetes.
Щоб зупинити проксі, використовуйте комбінацію Ctrl+C, щоб вийти з процесу. Після виходу з команди інформаційна панель залишається запущеною в кластері Kubernetes. Ви можете знову запустити команду dashboard, щоб створити інший проксі для доступу до інформаційної панелі.
Якщо ви не хочете, щоб minikube відкривав вебоглядач для вас, запустіть команду dashboard з прапорцем --url. minikube виводить URL-адресу, яку ви можете відкрити у будь-якому вебоглядачі на ваш вибір.
Відкрийте новий термінал та виконайте команду:
# Запустіть новий термінал та залиште його працювати.
minikube dashboard --url
Тепер поверніться до термінала, де ви запустили minikube start.
Створення Deployment
Pod в Kubernetes — це група з одного або більше контейнерів, які повʼязані один з одним для керування ними та використання мережевих ресурсів. Pod в цьому посібнику містить тільки один контейнер. Kubernetes Deployment перевіряє життєздатність вашого Podʼа та, якщо він виходить з ладу, перезапускає його. Deployment є рекомендованим способом створення та масштабування Podʼів.
Скористайтесь командою
kubectl createдля створення Deployment, що буде керувати Podʼом. Pod запускає контейнер, на основі наданого образу Docker.# Запустіть тестовий образ контейнера, який містить вебсервер kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.53 -- /agnhost netexec --http-port=8080Перевірте, чи створено Deployment.
kubectl get deploymentsВи маєте отримати вивід, подібний до такого:
NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m(Зачекайте деякий час, поки Pod стане доступним. Якщо ви бачите "0/1", спробуйте ще раз через кілька секунд.)
Перевірте, чи створено Pod.
kubectl get podsВи маєте отримати вивід, подібний до такого:
NAME READY STATUS RESTARTS AGE hello-node--5f76cf6ccf-br9b5 1/1 Running 0 1mПерегляд подій кластера:
kubectl get eventsПерегляд конфігурації
kubectl:kubectl config viewПерегляд логів застосунку з контейнера в Podʼі (замініть назву Podʼа на ту, яку ви отримали з
kubectl get pods).Примітка:
Замінітьhello-node-5f76cf6ccf-br9b5у командіkubectl logsна назву Podʼа, яку ви отримали з виводуkubectl get pods.kubectl logs hello-node-5f76cf6ccf-br9b5Вивід має бути подібним до такого:
I0911 09:19:26.677397 1 log.go:195] Started HTTP server on port 8080 I0911 09:19:26.677586 1 log.go:195] Started UDP server on port 8081
Створення Service
Стандартно, Pod доступний лише за його внутрішньою IP-адресою в межах Kubernetes-кластера. Щоб зробити контейнер hello-node доступним назовні віртуальної мережі Kubernetes, вам потрібно експонувати Pod як Service Kubernetes.
Попередження:
Контейнер agnhost має точку доступу/shell, яка корисна для налагодження, але є небезпечною у випадку її експонування для публічного доступу з інтернету. Не запускайте цей контейнер в кластері, що має вихід до інтернету, або на вашому операційному кластері.Скористайтесь командою
kubectl exposeдля експонування Podʼа:kubectl expose deployment hello-node --type=LoadBalancer --port=8080Прапорець
--type=LoadBalancerвказує, що ви хочете надати доступ до вашого Serviceʼу за межами кластера.Код застосунку всередині тестового образу контейнера тільки прослуховує порт 8080. Якщо ви використовуєте інший порт в
kubectl expose, клієнти не зможуть отримати доступ до вашого застосунку.Перевірте, чи створено Service:
kubectl get servicesВи маєте отримати вивід, подібний до такого:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23mУ хмарних провайдерів, які підтримують балансувальники навантаження, для доступу до Service буде надано зовнішню IP-адресу. В minikube команда
minikube serviceстворює Service типуLoadBalancer.Виконайте наступну команду:
minikube service hello-nodeЦе відкриє вікно вебоглядача, що показує відповідь застосунку.
Увімкнення надбудов
Інструменти minikube містять набір вбудованих надбудов, які можна увімкнути, вимкнути та відкрити в локальному середовищі Kubernetes.
Перегляньте список доступних надбудов:
minikube addons listВи маєте отримати вивід, подібний до такого:
addon-manager: enabled dashboard: enabled default-storageclass: enabled efk: disabled freshpod: disabled gvisor: disabled helm-tiller: disabled ingress: disabled ingress-dns: disabled logviewer: disabled metrics-server: disabled nvidia-driver-installer: disabled nvidia-gpu-device-plugin: disabled registry: disabled registry-creds: disabled storage-provisioner: enabled storage-provisioner-gluster: disabledУвімкніть надбудову, наприклад,
metrics-server:minikube addons enable metrics-serverВи маєте отримати вивід, подібний до такого:
The 'metrics-server' addon is enabledПерегляньте Podʼи та Serviceʼи, які щойно було створено:
kubectl get pod,svc -n kube-systemВивід має бути подібним до такого:
NAME READY STATUS RESTARTS AGE pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m pod/metrics-server-67fb648c5 1/1 Running 0 26s pod/etcd-minikube 1/1 Running 0 34m pod/influxdb-grafana-b29w8 2/2 Running 0 26s pod/kube-addon-manager-minikube 1/1 Running 0 34m pod/kube-apiserver-minikube 1/1 Running 0 34m pod/kube-controller-manager-minikube 1/1 Running 0 34m pod/kube-proxy-rnlps 1/1 Running 0 34m pod/kube-scheduler-minikube 1/1 Running 0 34m pod/storage-provisioner 1/1 Running 0 34m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26sПеревірте вивід з
metrics-server:kubectl top podsВи маєте отримати вивід, подібний до такого:
NAME CPU(cores) MEMORY(bytes) hello-node-ccf4b9788-4jn97 1m 6MiЯкщо ви бачите наступне повідомлення, почекайте та спробуйте ще раз:
error: Metrics API not availableВимкніть
metrics-server:minikube addons disable metrics-serverВивід має бути схожим на:
metrics-server was successfully disabled
Видалення кластера minikube
Тепер ви можете видалити ресурси, які ви створили в кластері:
kubectl delete service hello-node
kubectl delete deployment hello-node
Зупиніть кластер minikube:
minikube stop
Необовʼязково, ви можете видалити кластер minikube:
# Необовʼязково
minikube delete
Якщо ви бажаєте використовувати minikube знову для продовження вивчення Kubernetes, ви можете не видаляти його.
Підсумки
Ця сторінка містить базові аспекти використання minikube для розгортання простого кластера Kubernetes та запуску тестового застосунку. Тепер ви готові до розгортання власних застосунків.
Що далі
- Посібник Розгортання вашого першого застосунку в Kubernetes за допомогою kubectl.
- Дізнайтеся більше про Deployment.
- Дізнайтесь більше про Розгортання застосунків.
- Дізнайтесь більше про Service.
Змінено September 26, 2025 at 12:18 PM PST: [uk] sync upstream (19649eb454)