14 000 коммитов и 400 участников (включая один крошечный коммит от меня !) — вот что собирает Kubernetes 1.0. Теперь доступно !
- Скачать здесь
- API Документы
- Kubectl командный инструмент
- Руководство по началу работы
- Kubernetes Введение Слайды
В этом блоге обсуждаются некоторые шаблоны проектирования Kubernetes. Весь исходный код для шаблонов проектирования, обсуждаемых ниже, доступен по адресу kubernetes-java-sample .
Ключевые понятия Кубернетеса
На очень высоком уровне есть три ключевых понятия:
- Модули — это наименьшие развертываемые модули, которые можно создавать, планировать и управлять. Это логическая коллекция контейнеров, которые принадлежат приложению.
- Мастер — это центральная контрольная точка, которая обеспечивает единое представление кластера. Существует один главный узел, который контролирует несколько миньонов.
- Узел — это рабочий узел, который выполняет задачи, делегированные мастером. Миньоны могут управлять одним или несколькими стручками. Он предоставляет «виртуальный хост» для конкретного приложения в контейнерной среде.
Некоторые другие понятия, о которых нужно знать:
- Replication Controller — это ресурс в Master, который гарантирует, что запрошенное количество модулей работает на узлах постоянно.
- Служба — это объект на главном сервере, который обеспечивает балансировку нагрузки для реплицированной группы модулей.
- Метка — это произвольная пара ключ / значение в распределенном наблюдаемом хранилище, которое контроллер репликации использует для обнаружения службы.
Начать Kubernetes Cluster
- Самый простой способ запустить кластер Kubernetes в Mac OS — это использовать Vagrant :
12
export
KUBERNETES_PROVIDER=vagrant
curl -sS https:
//get
.k8s.io |
bash
- Кроме того, Kubernetes можно загрузить с github.com/GoogleCloudPlatform/kubernetes/releases/download/v1.0.0/kubernetes.tar.gz , а кластер можно запустить как:
123
cd
kubernetes
export
KUBERNETES_PROVIDER=vagrant
cluster
/kube-up
.sh
Стручок с одним контейнером
В этом разделе объясняется, как запустить Pod с одним контейнером. В качестве контейнера будет использоваться базовое изображение Docker WildFly.
Pod, Replication Controller, Service и т. Д. — все это ресурсы в Kubernetes. Они могут быть созданы с помощью kubectl с помощью файла конфигурации.
Файл конфигурации в этом случае:
01
02
03
04
05
06
07
08
09
10
11
12
|
apiVersion: v1 kind: Pod metadata: name: wildfly-pod labels: name: wildfly spec: containers: - image: jboss /wildfly name: wildfly-pod ports: - containerPort: 8080 |
Полная информация о том, как создать Pod, объясняется на github.com/arun-gupta/kubernetes-java-sample#a-pod-with-one-container.
Приложение Java EE, развернутое в модуле с одним контейнером
В этом разделе будет показано, как развернуть приложение Java EE в модуле с одним контейнером. WildFly с базой данных H2 в памяти будет использоваться в качестве контейнера.
Файл конфигурации:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
apiVersion: v1 kind: ReplicationController metadata: name: javaee7-hol labels: name: javaee7-hol spec: replicas: 1 selector: name: javaee7-hol template: metadata: labels: name: javaee7-hol spec: containers: - name: master image: arungupta /javaee7-hol ports: - containerPort: 8080 hostPort: 8080 |
Полная информация на github.com/arun-gupta/kubernetes-java-sample#java-ee-application-deployed-in-a-pod-with-one-container-wildfly–h2-in-memory-database .
Контроллер репликации с двумя репликами модуля
В этом разделе объясняется, как запустить контроллер репликации с двумя репликами модуля. Каждый Pod будет иметь один контейнер WildFly.
Файл конфигурации:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc labels: name: wildfly context: docker-k8s-lab spec: replicas: 1 template: metadata: labels: name: wildfly spec: containers: - name: wildfly-rc-pod image: arungupta /wildfly-mysql-javaee7 :k8s ports: - containerPort: 8080 |
Полная информация на github.com/arun-gupta/kubernetes-java-sample#a-replication-controller-with-two-replicas-of-a-pod-wildfly
Перепланирование стручков
Контроллер репликации обеспечивает одновременное выполнение указанного количества «реплик» модуля. Если их слишком много, контроллер репликации убивает несколько модулей. Если их слишком мало, начинается больше.
Полная информация на github.com/arun-gupta/kubernetes-java-sample#rescheduling-pods .
Масштабирующие стручки
Контроллер репликации позволяет динамически масштабировать модули вверх и вниз.
Полная информация на github.com/arun-gupta/kubernetes-java-sample#scaling-pods .
Кубернетес Сервис
Стручки эфемерны. На IP-адрес, назначенный модулю, нельзя положиться. Kubernetes, в частности, Replication Controller, динамически создает и уничтожает блоки. Модуль потребителя не может полагаться на IP-адрес модуля производителя .
Kubernetes Service — это абстракция, которая определяет набор логических модулей. Набор модулей, на которые ориентирована служба, определяется метками, связанными с модулями.
В этом разделе будет показано, как запускать контейнеры WildFly и MySQL в отдельных модулях. WildFly Pod будет общаться с MySQL Pod с помощью Сервиса.
Полная информация на github.com/arun-gupta/kubernetes-java-sample#kubernetes-service .
Вот пара блогов, которые помогут вам начать:
Полный набор записей блога Kubernetes предоставляет более подробную информацию.
Наслаждайтесь!
Ссылка: | Шаблоны дизайна Kubernetes от нашего партнера JCG Аруна Гупты в блоге Miles to go 2.0… . |