Академический Документы
Профессиональный Документы
Культура Документы
РАСПРЕДЕЛЕННОЙ СРЕДЕ
Место Kubernetes в экосистеме Red Hat
Virtualization OS
Hardware Hardware
Контейнер с приложением
● Используется device-mapper и снимки LVM(*) (Выполнение Приложения-А,
● Контейнер - активный компонент файловая система в режиме чтение-запись)
● Выполняющий приложение
● Основан на образе со всеми Слой пользователя (только чтение) (N)
зависимостями
Слой пользователя (только чтение) (1)
● После старта добавляется слой R/W
● Слой - часть зависимостей
● Основан на родительских слоях Образ платформы,
файловая система в режиме только для чтения
● Только чтение (OS Runtime, RO)
● Образ платформы - родительский слой
● Содержит базовый образ ОС
(*) - начиная с RHEL 7.4 доступен механизм OverlayFS v2
Инфраструктура Приложение
● Сетевая инфраструктура
● Масштабируемая, распределенная, автоматизированная
● Безопасность
● Внутри контейнеров, взаимодействия между контейнерами, среды
выполнения
● Аутентификация и авторизация
● RBAC, каталоги пользователей, интеграция через OAuth
● Система хранения данных
● Сохранение состояния приложения (разные протоколы, автоматизация)
● Реестр контейнеров
● Интегрированный реестр для корпоративных образов
Master Node
Scheduler
Container
POD POD Engine
Replication Controller
Kubelet Container
Container Container
Container
● Namespace
● Проекты, изолирующие описание ресурсов
● Pod
● Label
● Service
● Replication Controller
● Quote
● Deployment
● Persistent Volume и Persistent Volume Claim
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- image: nginx:1.10
command: ["/usr/bin/nginx"]
args: ["-g 'daemon off;'"]
kind: Service
apiVersion: v1
metadata:
name: nginx-svc
spec:
ports:
- name: http
port: 80
targetPort: 80
selector:
app: nginx
type: LoadBalancer
kind: ReplicationController
apiVersion: v1
metadata:
name: nginx-rc
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
kind: Quote
apiVersion: v1
metadata:
name: nginx-quote
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
CONTAINER INFRASTRUCTURE
CONTAINER AUTOMATION
CONTAINER and COCKPIT
CONTAINER CONTAINER
● Базовый функционал
● Идентификация осуществляется по сертификатам
● Авторизация проводится по принципу ABAC (Attribute Based Access Control)
● Дополнительные возможности
● htpasswd формат
● Возможность подключения провайдеров через OpenID Connect Token (с
версии 1.7)
● Авторизация RBAC
[root@ds-kube01 ~]# kubectl expose deploy hello-world --port=80 --target-port=80 --name hello-svc
[root@ds-kube02 ~]# kubectl describe svc/hello-svc
Name: hello-svc
Namespace: default
Labels: run=hello-world
Selector: run=hello-world
Type: ClusterIP
IP: 10.254.117.156
Port: <unset> 80/TCP
Endpoints: 10.253.230.2:80
Session Affinity: None
SELF-SERVICE
SERVICE CATALOG
(LANGUAGE RUNTIMES, MIDDLEWARE, DATABASES, …)
BUILD AUTOMATION DEPLOYMENT AUTOMATION
APPLICATION LIFECYCLE MANAGEMENT
CONTAINER CONTAINER (CI/CD)
CONTAINER CONTAINER CONTAINER
CONTAINER INFRASTRUCTURE
CONTAINER AUTOMATION
CONTAINER and COCKPIT
CONTAINER CONTAINER
● https://blog.openshift.com/red-hat-chose-kubernetes-openshift/
● https://github.com/dsevost/events-workshop-kubernetes-20170814
linkedin.com/company/red-hat twitter.com/RedHatNews
youtube.com/user/RedHatVideos