Команды создания в Kubernetes

KubernetesKubernetesBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Команда kubectl create является важным инструментом для создания ресурсов Kubernetes. Она использует файлы YAML или JSON для определения ресурсов, таких как пространства имен (namespaces), развертывания (deployments), сервисы (services), секреты (secrets) и ConfigMaps. В этом лабораторном занятии вы научитесь пошагово создавать эти ресурсы и понять их роль в Kubernetes.

По завершении этого лабораторного занятия вы сможете:

  1. Запустить и проверить кластер Minikube.
  2. Создать и проверить различные ресурсы Kubernetes с помощью команды kubectl create.
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 97%. Он получил 100% положительных отзывов от учащихся.

Запуск Minikube и проверка кластера

Перед началом работы с Kubernetes вам нужен работающий кластер. Minikube предоставляет легковесный локальный кластер Kubernetes.

  1. Перейдите в каталог проекта:

    Откройте терминал и перейдите в каталог по умолчанию:

    cd /home/labex/project
  2. Запустите Minikube:

    Запустите Minikube для инициализации кластера:

    minikube start
    • Minikube создает однодневный кластер Kubernetes. Этот шаг может занять несколько минут.
  3. Проверьте статус Minikube:

    Убедитесь, что Minikube успешно запустился:

    minikube status

    Проверьте, чтобы компоненты, такие как apiserver и kubelet, были перечислены как Running.

  4. Подтвердите конфигурацию Kubernetes:

    Убедитесь, что kubectl подключен к кластеру Minikube:

    kubectl cluster-info

    Эта команда отображает сведения о сервере API и других компонентах.

Если Minikube не запускается, используйте minikube delete для сброса и повторите попытку.

Исследование команды kubectl create

Команда kubectl create предоставляет несколько подкоманд для создания ресурсов Kubernetes. Она помогает управлять созданием таких ресурсов, как пространства имен (namespaces), развертывания (deployments), сервисы (services), секреты (secrets) и ConfigMaps.

Выполните следующую команду, чтобы просмотреть доступные подкоманды kubectl create:

kubectl create -h

Вы увидите следующий вывод:

Create a resource from a file or from stdin.

JSON and YAML formats are accepted.

Examples:
  ## Create a pod using the data in pod.json
  kubectl create -f./pod.json

  ## Create a pod based on the JSON passed into stdin
  cat pod.json | kubectl create -f -

  ## Edit the data in registry.yaml in JSON then create the resource using the edited data
  kubectl create -f registry.yaml --edit -o json

Available Commands:
  clusterrole           Создать кластерную роль (cluster role)
  clusterrolebinding    Создать привязку кластерной роли (cluster role binding) для определенной кластерной роли
  configmap             Создать ConfigMap из локального файла, каталога или литерального значения
  cronjob               Создать CronJob с указанным именем
  deployment            Создать развертывание (deployment) с указанным именем
  ingress               Создать Ingress с указанным именем
  job                   Создать задание (job) с указанным именем
  namespace             Создать пространство имен (namespace) с указанным именем
  poddisruptionbudget   Создать бюджет нарушения пода (pod disruption budget) с указанным именем
  priorityclass         Создать класс приоритета (priority class) с указанным именем
  quota                 Создать квоту (quota) с указанным именем
  role                  Создать роль (role) с одним правилом
  rolebinding           Создать привязку роли (role binding) для определенной роли или кластерной роли
  secret                Создать секрет (secret) с использованием указанной подкоманды
  service               Создать сервис (service) с использованием указанной подкоманды
  serviceaccount        Создать учетную запись сервиса (service account) с указанным именем
  token                 Запросить токен учетной записи сервиса

Просмотрите доступные подкоманды и их описания, чтобы понять, как можно использовать команду kubectl create.

Создание пространства имен (Namespace)

Пространства имен (Namespaces) позволяют вам организовывать и изолировать ресурсы в Kubernetes.

  1. Создание файла определения пространства имен:

    Откройте новый файл с именем namespace.yaml:

    nano namespace.yaml
  2. Определение пространства имен:

    Добавьте следующее содержимое:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: mynamespace

    Сохраните файл, нажав Ctrl+X, затем Y и Enter.

  3. Применение пространства имен:

    Создайте пространство имен:

    kubectl create -f namespace.yaml
  4. Проверка пространства имен:

    Проверьте список пространств имен:

    kubectl get namespaces

    Убедитесь, что mynamespace появляется в выводе.

Создание развертывания (Deployment)

Развертывания (Deployments) управляют и поддерживают желаемое состояние подов (Pods).

  1. Создание файла определения развертывания:

    Откройте файл с именем deployment.yaml:

    nano deployment.yaml
  2. Определение развертывания:

    Добавьте следующее содержимое для развертывания трех реплик контейнера Nginx:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: mydeployment
      namespace: mynamespace
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: myapp
      template:
        metadata:
          labels:
            app: myapp
        spec:
          containers:
            - name: nginx-container
              image: nginx

    Сохраните файл.

  3. Применение развертывания:

    Создайте развертывание:

    kubectl create -f deployment.yaml
  4. Проверка развертывания:

    Проверьте развертывание и его поды:

    kubectl get deployments -n mynamespace
    kubectl get pods -n mynamespace

    Убедитесь, что запущено три пода.

Создание сервиса (Service)

Сервис (Service) обеспечивает стабильный сетевой доступ к набору подов (Pods).

  1. Создание файла определения сервиса:

    Откройте файл с именем service.yaml:

    nano service.yaml
  2. Определение сервиса:

    Добавьте следующее содержимое:

    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
      namespace: mynamespace
    spec:
      selector:
        app: myapp
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80

    Сохраните файл.

  3. Применение сервиса:

    Создайте сервис:

    kubectl create -f service.yaml
  4. Проверка сервиса:

    Проверьте список сервисов:

    kubectl get services -n mynamespace

    Убедитесь, что myservice присутствует в списке.

Создание секрета (Secret)

Секреты (Secrets) безопасно хранят конфиденциальную информацию, такую как пароли или API-ключи.

  1. Создание файла определения секрета:

    Откройте файл с именем secret.yaml:

    nano secret.yaml
  2. Определение секрета:

    Добавьте следующее содержимое с значениями, закодированными в формате Base64:

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
      namespace: mynamespace
    type: Opaque
    data:
      username: dXNlcm5hbWU= ## Base64 for "username"
      password: cGFzc3dvcmQ= ## Base64 for "password"

    Сохраните файл.

  3. Применение секрета:

    Создайте секрет:

    kubectl create -f secret.yaml
  4. Проверка секрета:

    Проверьте список секретов:

    kubectl get secrets -n mynamespace

    Убедитесь, что mysecret появляется в выводе.

Создание ConfigMap

ConfigMap (Конфигурационные карты) хранят конфигурационные данные в виде пар "ключ-значение".

  1. Создание файла определения ConfigMap:

    Откройте файл с именем configmap.yaml:

    nano configmap.yaml
  2. Определение ConfigMap:

    Добавьте следующее содержимое:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: myconfigmap
      namespace: mynamespace
    data:
      database.host: "example.com"
      database.port: "5432"

    Сохраните файл.

  3. Применение ConfigMap:

    Создайте ConfigMap:

    kubectl create -f configmap.yaml
  4. Проверка ConfigMap:

    Проверьте список ConfigMap:

    kubectl get configmaps -n mynamespace

    Убедитесь, что myconfigmap появляется в выводе.

Резюме

В этом практическом занятии (lab) вы научились:

  1. Запускать и проверять кластер Minikube.
  2. Создавать ресурсы Kubernetes, такие как пространства имен (namespaces), развертывания (deployments), сервисы (services), секреты (secrets) и ConfigMap.
  3. Проверять статус этих ресурсов.

Освоив эти шаги, вы сможете эффективно управлять и развертывать приложения в Kubernetes. Практикуйте эти шаги, чтобы укрепить свое понимание!