- Быстрый старт
- Вопросы и ответы
- Рабочие нагрузки
- Что делать, если рабочая нагрузка неисправна?
- Что делать, если при неисправной нагрузке появляется сообщение «Failed to Schedule an Instance»
- Что делать, если произошла ошибка при загрузке образа?
- Не получается перезагрузить контейнер?
- Что делать, если инстанс не исключается из работы при неработающем узле?
- Какие есть способы создания рабочей нагрузки?
- Как указать порт при настройке Access Mode рабочей нагрузки?
- Как указать порт доступа для ELB при использовании команд kubectl?
- Какие версии Docker поддерживаются?
- Как указать количество инстансов рабочей нагрузки?
- Как установить проверку для рабочей нагрузки?
- Тарификация
- Термины и сокращения
- Товарные знаки
- Обратиться в поддержку
Как указать порт доступа для ELB при использовании команд kubectl?
В качестве примера будет использована рабочая нагрузка Nginx.
Необходимые условия:
Создан расширенный балансировщик нагрузки ELB.
Сервер ECS прикреплен к кластеру посредством команды kubectl.
Порядок действий:
Авторизуйтесь в сервере ECS, на котором настроен kubectl.
Создайте и отредактируйте файлы nginx-deployment.yaml и nginx-elb-svc.yaml.
ПримечаниеИмена используемых файлов приведены в качестве примера.
vi nginx-deployment.yaml
apiVersion: extensions/v1beta1kind: Deploymentmetadata:name: nginxspec:replicas: 1selector:matchLabels:app: nginxstrategy:type: RollingUpdatetemplate:metadata:labels:app: nginxspec:containers:- image: nginximagePullPolicy: Alwaysname: nginximagePullSecrets:- name: default-secretvi nginx-elb-svc.yaml
ПримечаниеПрежде чем разрешить Sticky session, удостоверьтесь, что для рабочей нагрузки указан протокол TCP и настроено правило Anti-affinity (т.е. все поды рабочей нагрузки должны быть развернуты на разных узлах).
Автоматическое создание балансировщика нагрузки:
apiVersion: v1kind: Servicemetadata:annotations:kubernetes.io/elb.class: unionkubernetes.io/session-affinity-mode: SOURCE_IPkubernetes.io/elb.subnet-id: 5083f225-9bf8-48fa-9c8b-67bd9693c4c0kubernetes.io/elb.autocreate:"{\"type\":\"public\",\"bandwidth_name\":\"cce-bandwidth- 1551163379627\",\"bandwidth_chargemode\":\"bandwidth\",\"bandwidth_size\":5,\"bandwidth_sharetype\":\"PER\",\"eip_type\":\"5_bgp\",\"name\":\"james\"}"labels:app: nginxname: nginxspec:externalTrafficPolicy: Localports:- name: service0port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: LoadBalancerИспользование существующего балансировщика нагрузки:
apiVersion: v1kind: Servicemetadata:annotations:kubernetes.io/elb.class: unionkubernetes.io/session-affinity-mode: SOURCE_IPkubernetes.io/elb.id: 3c7caa5a-a641-4bff-801a-feace27424b6kubernetes.io/elb.subnet-id: 5083f225-9bf8-48fa-9c8b-67bd9693c4c0labels:app: nginxname: nginxspec:loadBalancerIP: 10.78.42.242externalTrafficPolicy: Localports:- name: service0port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: LoadBalancer
Таблица 3. Основные параметры Параметр
Тип
Описание
kubernetes.io/elb.class
String
Обязательный параметр. Должно быть указано значение union, если используется расширенный балансировщик.
kubernetes.io/sessionaffinity-mode
String
Опционально. Нужно добавить данный параметр, если включен «Sticky Session». Значение SOURCE_IP указывает, что listeners обеспечивают «Sticky Session» исходными IP-адресами.
kubernetes.io/elb.id
String
Опционально. Данный параметр обязателен, если используется существующий балансировщик нагрузки.
kubernetes.io/elb.subnet-id
String
Опционально. Данный параметр обязателен, если используется автоматически созданный балансировщик нагрузки.
kubernetes.io/elb.autocreate
Опционально. Данный параметр обязателен, если используется автоматически созданный балансировщик нагрузки для общей сети. Система создаст расширенный балансировщик нагрузки и EIP. Также параметр является обязательным, если используется автоматически созданный балансировщик нагрузки для частной сети. Система создаст расширенный балансировщик нагрузки.
loadBalancerIP
String
Частный IP-адрес балансировщика нагрузки частной сети или общий IP-адрес балансировщика нагрузки общей сети.
externalTrafficPolicy
String
Опционально. Нужно добавить данный параметр, если включен «Sticky Session», и тогда запросы будут направлены на определенный узел.
port
Integer
Порт доступа, который указан в балансировщике нагрузок и сопоставлен с частным IP-адресом кластера.
targetPort
Integer
Порт контейнера в консоли CCE.
Параметры elb.autocreate Параметр
Тип
Описание
name
String
Название автоматически созданного балансировщика. Значение должно содержать от 1 до 64 символов: буквы, цифры, точки, нижние подчеркивания (_) и дефисы (-).
type
String
Тип сети балансировщика нагрузки: общая сеть или частная сеть.
bandwidth_name
String
Название пропускной способности. Название по умолчанию cce-bandwidth-******. Значение должно содержать от 1 до 64 символов: буквы, цифры, точки, нижние подчеркивания (_) и дефисы (-).
bandwidth_size
Integer
Размер пропускной способности.
bandwidth_sharetype
String
Sharing mode пропускной способности: PER — Dedicated Bandwidth, WHOLE — Shared Bandwidth.
eip_type
String
Вид EIP, поддерживаемый ELB.
Создайте рабочую нагрузку:
kubectl create -f nginx-deployment.yaml
Отобразится успешное создание рабочей нагрузки, как в примере ниже:
deployment "nginx" createdkubectl get po
Отобразится запуск рабочей нагрузки, как в примере ниже:
NAME READY STATUS RESTARTS AGEetcd-0 0/1 ImagePullBackOff 0 1hicagent-m9dkt 0/0 Running 0 3dnginx-2601814895-c1xhw 1/1 Running 0 6sСоздайте сервис:
kubectl create -f nginx-elb-svc.yaml
Отобразится успешное сервиса, как в примере ниже:
service "nginx" createdkubectl get svc
Отобразится успешная установка Access Type и доступность рабочей нагрузки, как в примере ниже:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEetcd-svc ClusterIP None <none> 3120/TCP 1hkubernetes ClusterIP 10.247.0.1 <none> 443/TCP 3dnginx LoadBalancer 10.247.130.196 10.78.42.242 80:31540/TCP 51sВведите URL в адресную строку браузера, например, 10.78.42.242:31540, где 10.78.42.242 — IP-адрес балансировщика нагрузки, а 31540 — порт доступа.