Привіт Minikube

Привіт Minikube

Цей навчальний посібник показує, як запустити демонстраційний застосунок у Kubernetes за допомогою minikube. Навчальний посібник надає образ контейнера, який за допомогою NGINX повертає у відповідь усі отримані запити.

Цілі

  • Розгорнути демонстраційний застосунок у minikube.
  • Запустити застосунок.
  • Переглянути логи застосунку.

Перш ніж ви розпочнете

Цей навчальний посібник передбачає, що ви вже налаштували minikube. Інструкції щодо встановлення дивіться в Кроці 1 на сторінці minikube start.

Вам також потрібно встановити kubectl. Інструкції щодо встановлення дивіться в розділі Встановлення інструментів.

Створення кластера minikube

minikube start

Перевірка стану кластера minikube

Перевірте стан кластера minikube, щоб переконатися, що всі компоненти працюють.

minikube status

Вивід наведеної вище команди має показувати всі компоненти у стані Running або Configured, як у прикладі виводу нижче:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Відкриття інформаційної панелі

Відкрийте інформаційну панель Kubernetes. Це можна зробити двома різними способами:

Відкрийте новий термінал і виконайте:

# Запустіть новий термінал та залиште його працювати.
minikube dashboard

Тепер поверніться до термінала, де ви запустили minikube start.

Якщо ви не хочете, щоб minikube відкривав вебоглядач за вас, виконайте підкоманду dashboard з прапорцем --url. minikube виведе URL, який ви можете відкрити у вебоглядачі на свій вибір.

Відкрийте новий термінал і виконайте:

# Запустіть новий термінал та залиште його працювати.
minikube dashboard --url

Тепер ви можете скористатися цим URL і повернутися до термінала, де ви запустили minikube start.

Створення Deployment

Pod у Kubernetes — це група з одного або декількох контейнерів, що обʼєднані разом з метою адміністрування і роботи в мережі. У цьому навчальному посібнику Pod має лише один контейнер. Kubernetes Deployment перевіряє стан вашого Podʼа і перезапускає контейнер Podʼа, якщо контейнер перестає працювати. Створювати і масштабувати Podʼи рекомендується за допомогою Deploymentʼів.

  1. За допомогою команди 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
    
  2. Перегляньте інформацію про Deployment:

    kubectl get deployments
    

    У виводі ви побачите подібну інформацію:

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    

    (Може знадобитися деякий час, поки Pod стане доступним. Якщо ви бачите «0/1», спробуйте ще раз за кілька секунд.)

  3. Перегляньте інформацію про Pod:

    kubectl get pods
    

    У виводі ви побачите подібну інформацію:

    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    
  4. Перегляньте події кластера:

    kubectl get events
    
  5. Перегляньте конфігурацію kubectl:

    kubectl config view
    
  6. Перегляньте логи застосунку для контейнера в Podʼі (замініть імʼя 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.

  1. Відкрийте Pod для публічного доступу з інтернету за допомогою команди kubectl expose:

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    

    Прапорець --type=LoadBalancer вказує, що ви хочете відкрити доступ до Service за межами кластера.

    Код застосунку в тестовому образі прослуховує лише TCP-порт 8080. Якби ви використали kubectl expose, щоб відкрити інший порт, клієнти не змогли б підʼєднатися до цього іншого порту.

  2. Перегляньте інформацію про створений вами 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 тип LoadBalancer робить Service доступним через команду minikube service.

  3. Виконайте наступну команду:

    minikube service hello-node
    

    Це відкриє вікно вебоглядача, яке обслуговує ваш застосунок і показує його відповідь.

Увімкнення надбудов

Інструмент minikube містить набір вбудованих надбудов, які можна увімкнути, вимкнути і відкрити в локальному середовищі Kubernetes.

  1. Перегляньте перелік наразі підтримуваних надбудов:

    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
    
  2. Увімкніть надбудову, наприклад metrics-server:

    minikube addons enable metrics-server
    

    У виводі ви побачите подібну інформацію:

    The 'metrics-server' addon is enabled
    
  3. Перегляньте 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
    
  4. Перевірте вивід metrics-server:

    kubectl top pods
    

    У виводі ви побачите подібну інформацію:

    NAME                         CPU(cores)   MEMORY(bytes)
    hello-node-ccf4b9788-4jn97   1m           6Mi
    

    Якщо ви бачите таке повідомлення, зачекайте і спробуйте ще раз:

    error: Metrics API not available
    
  5. Вимкніть metrics-server:

    minikube addons disable metrics-server
    

    У виводі ви побачите подібну інформацію:

    metrics-server was successfully disabled
    

Очищення

Тепер ви можете видалити ресурси, які створили у вашому кластері:

kubectl delete service hello-node
kubectl delete deployment hello-node

Зупиніть кластер Minikube

minikube stop

За бажанням видаліть ВМ з Minikube:

# Необовʼязково
minikube delete

Якщо ви хочете знову використовувати minikube, щоб дізнатися більше про Kubernetes, видаляти його не потрібно.

Підсумки

На цій сторінці розглянуто основні аспекти створення та запуску кластера minikube. Тепер ви готові розгортати застосунки.

Що далі

Змінено November 08, 2026 at 12:22 AM PST: [uk] hello-minikube: one line per paragraph (8525422a32)