Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Щупаем Kubernetes за всякое часть 3


 

Щупаем Kubernetes за всякое часть 3


Пердыдущие части:
http://snakeproject.ru/rubric/article.php?art=kubernetes_1_01062020
http://snakeproject.ru/rubric/article.php?art=kubernetes_1_03062020


Подведем теоретический итог изученного из предыдущих частей

Cluster - логический сегмент серверов с Kubernetes

Nodes - сервера с установленным Kubernetes

Service - предоставляет доступ к Deployment с помощью:
1. ClusterIP
2. NodePort
3. LoadBalancer
4. ExternalName

Deployment - развертывание, логическое объединение однотипных Pod

Pod - объект, содержит один или более работающих контейнеров


Закрепим все знания


Вывод доступной информации


Проверим работоспособное состояние хотя-бы одной ноды:
$ kubectl get nodes
NAME                STATUS     ROLES    AGE     VERSION
kubernetes-master   Ready      master   3d20h   v1.18.2
kubernetes-slave    NotReady   <none>   3d19h   v1.18.2


Проверим сетевую часть:
$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   3d20h


Проверим наличие работающих Pod:
$ kubectl get pods
No resources found in default namespace.


И наличие развертываний:
$ kubectl get deployments
No resources found in default namespace.


Манипулирование и управление контейнерами docker в kubernetes


Создадим объект Pod с одним контейнером на базе nginx:
$ kubectl run mynginx --image=nginx --port=8888 --labels app=mynginx
pod/mynginx created


Проверяем, статус должен смениться через некоторое время:

$ kubectl get pods
NAME      READY   STATUS              RESTARTS   AGE
mynginx   0/1     ContainerCreating   0          27s

$ kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
mynginx   1/1     Running   0          63s


Выведем подробную информацию о Pod:
$ kubectl describe pods mynginx


Формат выполнения команд - kubectl kubectl exec [POD] -- [COMMAND]

Исполнить команду в контейнере mynginx в Pod:
$ kubectl exec mynginx -- uname
Linux

Перейти в оболочку в контейнере mynginx в Pod:
$ kubectl exec -it mynginx -- bash
root@mynginx:/#


Вывести логи:
$ kubectl logs mynginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty...
/docker-entrypoint.sh: Looking for shell scripts in /dock...
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-...
10-listen-on-ipv6-by-default.sh: Getting the checksum of ...
10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 i...
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-...
/docker-entrypoint.sh: Configuration complete; ready for ...


Перенаправление ip:порт 192.168.0.128:88 сервера к порту 80 контейнера:
$ sudo kubectl port-forward mynginx --address 192.168.0.128 88:80
Forwarding from 192.168.0.128:88 -> 80

Проверка сетвой доступности:
$ curl -I http://192.168.0.128:88/
HTTP/1.1 200 OK
Server: nginx/1.19.0
Date: Fri, 05 Jun 2020 09:13:03 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 May 2020 15:00:20 GMT
Connection: keep-alive
ETag: "5ecd2f04-264"
Accept-Ranges: bytes

Прервите форвардинг


Удалим наш Pod:
$ kubectl delete pods mynginx
pod "mynginx" deleted


Проверяем:
$ kubectl get pods
No resources found in default namespace.


Создадим Pod с использованием манифеста и двух разных web серверов


Создадим файл манифеста myweb.yaml:


Где основное:
kind: Pod - что создаем
name: myweb - имя создаваемого объекта Pod
namespace: default - в каком пространстве имен
spec: - описание запуска контейнеров


Запустим Pod на основе манифеста:
$ kubectl apply -f myweb.yaml
pod/myweb created

Проверяем работоспособность:
$ kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
myweb   2/2     Running   0          5m44s


Перенаправление ip:порт 192.168.0.128
Порта 88 сервера к порту 80 контейнера
Порта 99 сервера к порту 8080 контейнера

$ kubectl port-forward myweb --address 192.168.0.128 88:80 &
$ kubectl port-forward myweb --address 192.168.0.128 99:8080 &


Проверка сетвой доступности:

$ curl -I http://192.168.0.128:88/
Handling connection for 88
HTTP/1.1 200 OK
Server: nginx/1.19.0
Date: Fri, 05 Jun 2020 10:41:02 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 May 2020 15:00:20 GMT
Connection: keep-alive
ETag: "5ecd2f04-264"
Accept-Ranges: bytes

$ curl -I http://192.168.0.128:99/
Handling connection for 99
HTTP/1.1 404
Content-Type: text/html;charset=utf-8
Content-Language: en
Transfer-Encoding: chunked
Date: Fri, 05 Jun 2020 10:41:09 GMT


Удалим наш Pod:
$ kubectl delete pods myweb
pod "myweb" deleted

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru