Рубрики
Uncategorized

Изучение Кубернаны — Часть I: Введение

Этот пост является первой частью серии о Куберане. Вместо того, чтобы серию учебных пособий, это … с меченым с Куберовщиком, дежопами, облаками, начинающими.

Этот пост является первой частью серии о Куберане. Вместо того, чтобы серию учебников это предназначено для периодического журнала моего путешествия, изучающей концепции и инструменты, касающиеся оркестрации с использованием Kubernetes.

Установка

Как я намеревался узнать, как использовать Kubernetes (не управлять им), я начал кластер Kubernetes в Google Cloud Platform и работал оттуда. Следовательно, я не буду адресовать Kubernetes Cluster установку и конфигурацию в этой серии. Для получения более подробной информации о том, как использовать кластер GCP Kubernetes, нажмите здесь Отказ

Первый: концепции

Одна вещь, которая всегда помогает мне лучше понять и узнать новую технологию или инструмент — понять, какова цель инструмента или технологии, для чего он используется, а также получить концепции правильно .

Убедитесь, что вы понимаете, что основные концепции — это отличная помощь в дороге впереди улучшения ваших знаний о инструменте/технологии, которую вы изучаете.

Итак, давайте начнем с понимания Что такое Кубернеты Отказ

Кубернеты

Kubernetes — это инструмент оркестровки, который позволяет нам управлять контейнерными приложениями по группе узлов. Не только предоставляют механизмы быстрого запуска тех, но и как обновлять, развернуть и предоставлять доступ к ним доступ.

POD: атом в Кубернане Вселенную

POD — самая маленькая единица внутри кластера Kubernetes, и он представляет собой коллекцию контейнеров приложений и объемов, работающих в одном и том же изолированном выполнении. Каждый контейнер в том же POD разделяет тот же IP-адрес, пространство имен и хранилище.

Хотя я описал POD в качестве коллекции контейнеров, наиболее распространенным рисунком — иметь один контейнер на POD. Если вам нужно дважды подумать о группе нескольких контейнеров в том же POD, спросите себя

Будут ли эти контейнеры работать правильно, если они приземляются на разных машинах?

Если ответ: «Нет», вы действительно должны группировать эти контейнеры в том же POD, в противном случае просто не делай этого.

Kubectl: Основы

Прежде чем идти дальше, давайте посмотрим на некоторые основные возможности Kubectl (инструмент командной строки Kubernetes).

Версия и статус

Чтобы гарантировать, что Kubectl и Kubernetes работают правильно, вы можете запустить:

kubectl version

И вы должны увидеть что-то вроде изображения ниже, где он перечислен версия кластера Kubernetes и Client.

Кроме того, вы также можете проверить статус основных компонентов кластеров Kubernetes с:

kubectl get componentstatuses

Который должен предоставить вам выход, похожий на этот:

Узлы

Чтобы получить информацию о узлах, которые составляют кластер Kubernetes и могут быть запланированы с работой, выполнив следующую команду:

kubectl get nodes

Эта команда, как вы можете видеть на следующем изображении, дает вам список с какой-то основной информацией для каждого узла вашего кластера. Как я уже говорил ранее, мой кластер находится на облачной платформе Google, поэтому, в зависимости от вашей настройки (локальный кластер или кластер в другом поставщике облака), вывод может быть немного отличным.

Подвигание

Теперь, чтобы быстро показать вам о стручках, давайте создадим один, запустив:

kubectl run kubernetes-hello-world --image=paulbouwer/hello-kubernetes:1.9 --port=8080

Обратите внимание, что Kubectl Run Не идеальный способ сделать вещи, но давайте сделаем это ради примера. В следующем посте мы исследуем правильный способ определить ресурсы (декларативный путь). Вы должны увидеть выходной выход, похожий на этот:

Теперь, если вы запустите:

kubectl get pods

Вы получите следующий вывод, где вы можете увидеть POD, созданный с помощью Kubectl Run команда.

Вы также можете проверить более подробную информацию с другими командами, такими как описывать и журналы , следующее:

kubectl describe pods kubernetes-hello-world
kubectl logs kubernetes-hello-world

Первый дает вам подробное описание указанного POD, как показано ниже:

Name:         kubernetes-hello-world
Namespace:    default
Priority:     0
Node:         gke-kuar-cluster-default-pool-41051aa0-hs4q/10.138.15.194
Start Time:   Thu, 11 Mar 2021 17:44:41 +0000
Labels:       run=kubernetes-hello-world
Annotations:  
Status:       Running
IP:           10.96.14.3
IPs:
  IP:  10.96.14.3
Containers:
  kubernetes-hello-world:
    Container ID:   docker://db09b9c745c03f3e757f1f386f5df8e04e48faaace587cfa72ed1f3e6a751300
    Image:          paulbouwer/hello-kubernetes:1.9
    Image ID:       docker-pullable://paulbouwer/hello-kubernetes@sha256:be6b5ba3abdca6e01689e0d1d27b41410fb5bf5793da407108a89ef355f362f0
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu, 11 Mar 2021 17:44:50 +0000
    Ready:          True
    Restart Count:  0
    Environment:    
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-dzc9f (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-dzc9f:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-dzc9f
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  23m   default-scheduler  Successfully assigned default/kubernetes-hello-world to gke-kuar-cluster-default-pool-41051aa0-hs4q
  Normal  Pulling    23m   kubelet            Pulling image "paulbouwer/hello-kubernetes:1.9"
  Normal  Pulled     23m   kubelet            Successfully pulled image "paulbouwer/hello-kubernetes:1.9"
  Normal  Created    23m   kubelet            Created container kubernetes-hello-world
  Normal  Started    23m   kubelet            Started container kubernetes-hello-world

Второй вариант дает вам журналы, связанные с запущенным контейнерами. Эти методы отладки и проверки доступны в каждом ресурсе, доступном в Kubernetes (PODS, развертывания, услуги и т. Д.).

Один конечный способ отладить свое приложение, кроме журналов, заключается в проверке и взаимодействии с запущенными контейнерами (ыми) с Exec с участием:

kubectl exec -it kubernetes-hello-world -- sh

Вы можете увидеть один пример этого взаимодействия в следующем изображении:

Наконец, удалить созданный POD, запустить:

Если вам нравится мое объяснение, вы можете следовать за мной, я опубликую следующие части этой серии в ближайшие недели.

Нажмите здесь для Следующая часть Отказ

Оригинал: «https://dev.to/vascoalramos/learning-kubernetes-concepts-part-1-pb0»