Рубрики
Uncategorized

Создание стручков Kubernetes

Давайте создадим два стручка в Куберане. Давайте создадим POD, имеющий контейнер WordPress и еще один по … Теги с учебником, начинающими, Куберателями, дежопами.

Давайте создадим два стручки в Кубебене. Давайте создадим POD, имеющий контейнер WordPress и другой POD, имеющий контейнер MySQL.

Теперь, почему WordPress и MySQL? Что было бы лучшим примером, чем создание старого доброй доброй веб-сервера Apache с PHP, подключившись к базе данных MySQL? Здесь WordPress — это бесплатная и открытая система управления контентом, написанная в PHP и в паре с базой данных MySQL или MariaDB. Таким образом, вместо того, чтобы создавать свой PHP с нуля, мы собираемся создавать контейнеры из предварительно созданных изображений WordPress.

Что у нас будет в конце этого учебника, так как ниже.

Создание стручков в Куберане проста. Мы будем использовать подход на основе YAML.

Давайте создадим файл с именем WordPressDeploy

Ment.yaml И мы будем использовать редактор Vim для этого.

vim wordpressDeployment.yaml

Пустая страница будет открыта. Нажмите побег и тип i . Страница откроется в режиме вставки. Введите ниже.

apiVersion: v1
kind: Pod
metadata:
        name: wordpress-app
        labels:
                app: wordpress
                type: app
spec:
        containers:
                - name: wordpress-app
                  image: wordpress

Нажмите побег Затем введите : wq! и нажмите Введите Отказ Страница сохраняет. Здесь Отказ авивение представляет версию и тип API, который мы собираюсь использовать для создания этого объекта Kubernetes. Любой новый Функция, бета, альфа-версификация выполняется на уровне API а не поле или уровень ресурсов. . добрый Представляет тип/вид объекта, который вы хотите создать Отказ метаданные Представляет данные, которые помогают однозначно идентифицировать Объект, включая строку имя, UID и необязательный пространство имен. Имя В метаданных название объекта вы собираемся создать. этикетки В метаданных это Идентификация, используемая другими объектами для выбора этого объекта. Мы Посмотрите на то, как этикетки и селекторы на будущих постах. . Спец представляет собой вид (что) Укажите, что вы желаете для объект. В Контейнеры Мы указываем имя и изображение Из контейнера мы собираемся создавать в этом POD.

Поэтому, когда мы применим это, мы собираемся создать POD под названием WordPress-App с официальным изображением WordPress в Dockerhub.

$ kubectl apply -f wordpressDeployment.yaml
pod/wordpress-app created

#check pod status
$ kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
wordpress-app   1/1     Running   0          21s

Когда мы проверяем статус, мы видим, что POD работает и работает.

Теперь давайте создадим MySQL POD И поэтому мы создадим/открыть WordPressDB.yaml

apiVersion: v1
kind: Pod
metadata: 
        name: wordpress-db
        labels:
                app: WordPress
                type: db
spec:
        containers:
                - name: wordpress-db-container
                  image: mysql:5.7

Примените YAML для создания MySQL POD, созданного из официального изображения MySQL.

$ kubectl apply -f wordpressDb.yaml

$ kubectl get pods
NAME            READY   STATUS             RESTARTS   AGE
wordpress-app   1/1     Running            0          26m
wordpress-db    0/1     CrashLoopBackOff   1          22s

Мы видим, что статус имеет ошибку с именем CrashLoopbackoff Отказ

#checking the logs for the pod
$ kubectl logs -p wordpress-db
Error from server: Get https://172.31.38.44:10250/containerLogs/default/wordpress-db/wordpress-db-container?previous=true: dial tcp 172.31.38.44:10250: i/o timeout

#desribing the pods
$ kubectl describe pods wordpress-db
Name:         wordpress-db
Namespace:    default
Priority:     0
Node:         ip-172-31-38-44/172.31.38.44
Start Time:   Thu, 16 Jul 2020 01:39:37 +0000
Labels:       app=wordpress
Annotations:  cni.projectcalico.org/podIP: 10.13.108.2/32
              cni.projectcalico.org/podIPs: 10.13.108.2/32
Status:       Running
IP:           10.13.108.2
IPs:
  IP:  10.13.108.2
Containers:
  wordpress-db-container:
    Container ID:   docker://e6a336394be171103dc0aacc386d3cfb348ef565a9c69969cc3e5d268c1e79ea
    Image:          mysql:5.7
    Image ID:       docker-pullable://mysql@sha256:ea560da3b6f2f3ad79fd76652cb9031407c5112246a6fb5724ea895e95d74032
    Port:           
    Host Port:      
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Thu, 16 Jul 2020 02:00:45 +0000
      Finished:     Thu, 16 Jul 2020 02:00:45 +0000
    Ready:          False
    Restart Count:  9
    Environment:    
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-48pkn (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-48pkn:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-48pkn
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                   From                      Message
  ----     ------     ----                  ----                      -------
  Normal   Scheduled               default-scheduler         Successfully assigned default/wordpress-db to ip-172-31-38-44
  Normal   Pulled     22m (x5 over 23m)     kubelet, ip-172-31-38-44  Container image "mysql:5.7" already present on machine
  Normal   Created    22m (x5 over 23m)     kubelet, ip-172-31-38-44  Created container wordpress-db-container
  Normal   Started    22m (x5 over 23m)     kubelet, ip-172-31-38-44  Started container wordpress-db-container
  Warning  BackOff    3m25s (x96 over 23m)  kubelet, ip-172-31-38-44  Back-off restarting failed container

Мы все еще не понимаем, что такое проблема, но мы можем понять, что контейнер начинает, аварии, снова перезагружается. Я до сих пор не уверен, почему это грохочет, но я посмотрю на официальный Страница контейнера MySQL в Dockerhub Отказ

Я могу наблюдать, что вариабельная среда MySQL_ROOT_PASSWORD является обязательным. Поэтому я собираюсь передать это.

apiVersion: v1
kind: Pod
metadata:
        name: wordpress-db
        labels:
                app: wordpress
                type: db
spec:
        containers:
                - name: wordpress-db-container
                  image: mysql:5.7
                  env:
                          - name: MYSQL_ROOT_PASSWORD
                            value: DEVOPS1

Теперь давайте нанесемся и соблюдаем.

$ kubectl apply -f wordpressDb.yaml
pod/wordpress-app created

$ kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
wordpress-app   1/1     Running   0          10m
wordpress-db    1/1     Running   0          21s

Это работает, и оба стручка работают и работают.

Оригинал: «https://dev.to/preethamsathyamurthy/create-your-first-pods-4cf5»