Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
system:minikube [2024/08/22 22:53] mirocowsystem:minikube [2024/08/26 21:00] (текущий) mirocow
Строка 2: Строка 2:
  
 ====== Minikube ====== ====== Minikube ======
 +
 +{{ :system:module_04_labels.svg?600 |}}
 +
 +  * kind — это инструмент для запуска локальных кластеров Kubernetes с использованием «узлов» контейнера Docker. kind был в первую очередь разработан для тестирования самого Kubernetes, но может использоваться для локальной разработки или непрерывной интеграции.
 +  * kubectl
 +  * helm
 +
 +===== Установка и настройка =====
 +
  
 <code bash> <code bash>
 $ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 $ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
-$ minikube start+$ minikube start --vm-driver=docker
 $ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" $ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
 $ curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl $ curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl
Строка 27: Строка 36:
 </code> </code>
  
-====== Сервисы ======+===== Запуск панели (dashboard) =====
  
 +<code bash>
 +$ minikube dashboard
 +</code>
  
-===== ClusterIP =====+===== Создание деплоймента =====
  
-ClusterIP — это дефолтный тип сервиса в кубах, он поднимает вам сервис внутри кластера на внутрекластеровом IPДоступа для внешнего трафика нет, только внутри кластера.+<code bash> 
 +$ kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080 
 +$ kubectl get deployments 
 +$ kubectl get events 
 +$ kubectl config view 
 +</code>
  
-YAML для ClusterIP выглядит как-то так:+===== Создание сервиса =====
  
-{{:system:image-4.png?600|}} +<code bash
- +$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080 
-<code> +$ kubectl get services 
-apiVersion: v1 +$ minikube service hello-node
-kind: Service +
-metadata:   +
-  name: my-internal-service +
-spec: +
-  selector:     +
-    app: my-app +
-  type: ClusterIP +
-  ports:   +
-  name: http +
-    port: 80 +
-    targetPort: 80 +
-    protocol: TCP+
 </code> </code>
 +
 +===== Очистка =====
  
 <code bash> <code bash>
-$ kubectl proxy --port=8080+$ kubectl delete service hello-node 
 +$ kubectl delete deployment hello-node 
 +$ minikube stop 
 +$ minikube delete
 </code> </code>
  
-Когда использовать ClusterIP для открытия внешнего доступа? +===== Ссылки =====
-Есть парочка вариантов применения, когда стоит пускать трафик на сервис через kubernetes proxy:+
  
-  * Когда надо дебажить сервисы, подключаясь к ним напрямую +{{topic>[kubernetes]}}
-  * Когда надо получить доступ к какому-либо сервису +
- +
-===== NodePort ===== +
- +
-NodePort — наиболее простой и “тупой” способ пустить внешний трафик на сервис. Название “NodePort” говорит само за себя — просто открывается порт на ноде для доступа извне, а трафик уже маршрутизируется на сам сервис. +
- +
-{{:system:image-5.png?600|}} +
- +
-<code> +
-Код +
-</code>+