Kubernetes — установить Cosnul

Consul — это децентрализованный отказоустойчивый discovery-сервис от компании HashiCorp (которая разрабатывает такие продукты как Vagrant, TerraForm, Otto, Atlas и другие).

Consul является децентрализованным сервисом, то есть Consul agent устанавливается на каждый хост и является полноправным участником кластера. Таким образом, сервисам не нужно знать адрес discovery в нашей сети, все запросы к discovery выполняются на локальный адрес 127.0.0.1.

В этом руководстве вы развернете центр обработки данных Consul с официальным чартом Helm.
Вам не нужно обновлять какие-либо значения в чарте Хелма для базовой установки.
Однако вы можете создать файл значений с параметрами, чтобы разрешить доступ к пользовательскому интерфейсу Consul.
Предупреждение о безопасности. Это руководство не для производственного использования. По умолчанию на диаграмме будет установлена небезопасная конфигурация Consul. Пожалуйста, обратитесь к документации Kubernetes, чтобы определить, как вы можете обеспечить безопасность Consul на Kubernetes в производстве. Кроме того, настоятельно рекомендуется использовать правильно защищенный кластер Kubernetes или убедиться, что вы понимаете и включаете рекомендуемые функции безопасности.
Для успешного выполнения этого руководства у вас должен быть существующий кластер Kubernetes и локально настроенные Helm и kubectl.

Разворачиваем Consul

Вы можете развернуть полный центр обработки данных Consul, используя официальный чарт Helm.

По умолчанию в чарте будут установлены три сервера Consul и клиент на всех узлах Kubernetes.

Вы можете просмотреть значения чарта, чтобы узнать больше о настройках по умолчанию.

Скачать Helm чарт

Во-первых, вам нужно будет клонировать официальный Helm чарт из репозитория Gashub от HashiCorp.

$ git clone https://github.com/hashicorp/consul-helm.git

Вам не нужно обновлять чарт Helm перед развертыванием Консула, т.к. он имеет разумные значения по умолчанию.

Ознакомьтесь с документацией по чартам Helm, чтобы узнать больше информации.

Установка Consul через Helm

Чтобы развернуть Consul, вы должны быть в том же каталоге, что и чарт.

$ cd consul-helm

Теперь вы можете развернуть Консул с помощью установки helm.

Это позволит развернуть три сервера и агента на всех узлах Kubernetes.

Процесс должен быть быстрым, менее 5 минут.

$ helm install .

NAME:   mollified-robin LAST DEPLOYED: Mon Feb 25 15:57:18 2019 NAMESPACE: default STATUS: DEPLOYED
NAME                             READY  STATUS             RESTARTS  AGE
mollified-robin-consul-25r6z     0/1    ContainerCreating  0         0s
mollified-robin-consul-4p6hr     0/1    ContainerCreating  0         0s
mollified-robin-consul-n82j6     0/1    ContainerCreating  0         0s
mollified-robin-consul-server-0  0/1    Pending            0         0s
mollified-robin-consul-server-1  0/1    Pending            0         0s
mollified-robin-consul-server-2  0/1    Pending            0         0s

Вывод, показщанный выше был уменьшен для удобства чтения.

Однако вы можете видеть, что в этом кластере Kubernetes с тремя узлами есть три сервера Consul и три клиента Consul.

Доступ к Consul UI

Чтобы получить доступ к пользовательскому интерфейсу, вам необходимо обновить значения пользовательского интерфейса в чарте .

В качестве альтернативы, если вы не хотите обновлять свой кластер, вы можете настроить переадресацию портов с помощью kubectl.

Создайте файл значений

Сначала создайте файл значений, который можно передать в командной строке при обновлении.

# values.yaml
global:
  datacenter: hashidc1
syncCatalog:
  enabled: true
ui:
  service:
    type: 'LoadBalancer'
server:
  affinity: |
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchLabels:
              app: {{ template "consul.name" . }}
              release: "{{ .Release.Name }}"
              component: server
        topologyKey: kubernetes.io/hostname

Этот файл переименовывает ваш центр обработки данных, включает синхронизацию каталога, настраивает службу балансировки нагрузки для пользовательского интерфейса и разрешает привязку, чтобы разрешить только одну поду Consul на узел Kubernetes.

Параметры синхронизации каталога позволят вам увидеть сервисы Kubernetes в пользовательском интерфейсе Consul.

Инициируйте обновление

Наконец, инициируйте обновление с помощью helm upgrade и флага -f, который передается в ваш новый файл значений.

Этот процесс также должен быть быстрым, менее минуты.

$ helm upgrade consul -f values.yaml

Теперь вы можете использовать kubectl get services для определения внешнего IP-адреса вашего пользовательского интерфейса Consul.

$ kubectl get services
NAME                            TYPE           CLUSTER-IP     EXTERNAL-IP             PORT(S)        AGE
consul                          ExternalName   <none>         consul.service.consul   <none>         11d
kubernetes                      ClusterIP      122.16.14.1    <none>                  443/TCP        137d
mollified-robin-consul-dns      ClusterIP      122.16.14.25   <none>                  53/TCP,53/UDP  13d
mollified-robin-consul-server   ClusterIP      None           <none>                  8500/TCP       13d
mollified-robin-consul-ui       LoadBalancer   122.16.31.395  36.276.67.195           8

Кроме того, вы можете использовать kubectl get pods для просмотра нового процесса синхронизации.

Процесс синхронизации каталога по умолчанию синхронизирует службы Consul и Kubernetes в обоих направлениях.

$ kubectl get pods
NAME                                                 READY   STATUS      RESTARTS   AGE
mollified-robin-consul-d8mnp                          1/1     Running     0         15d
mollified-robin-consul-p4m89                          1/1     Running     0         15d
mollified-robin-consul-qclqc                          1/1     Running     0         15d
mollified-robin-consul-server-0                       1/1     Running     0         15d
mollified-robin-consul-server-1                       1/1     Running     0         15d
mollified-robin-consul-server-2                       1/1     Running     0         15d
mollified-robin-consul-sync-catalog-f75cd5846-wjfdk   1/1     Running     0

Служба должна была добавитьcя по имени развертывания consul-ui.

Обратите внимание, вам не нужно указывать порт при доступе к панели мониторинга.

Доступ к Consul

Помимо доступа к Consul с помощью пользовательского интерфейса, вы можете управлять Consul с помощью HTTP API или напрямую подключаясь к поду с помощью kubectl.

Kubectl

Для доступа к каталогу pod и data вы можете запустить kodectl в pod для запуска сеанса оболочки.

$ kubectl exec -it mollified-robin-consul-server-0 /bin/sh

Это позволит вам перемещаться по файловой системе и запускать консольные команды CLI на поде.

Например, вы можете просмотреть Consul members.

$ consul members
Node                                   Address           Status  Type    Build  Protocol  DC        Segment
mollified-robin-consul-server-0        172.20.2.18:8301  alive   server  1.4.2  2         hashidc1  <all>
mollified-robin-consul-server-1        172.20.0.21:8301  alive   server  1.4.2  2         hashidc1  <all>
mollified-robin-consul-server-2        172.20.1.18:8301  alive   server  1.4.2  2         hashidc1  <all>
gke-tier-2-cluster-default-pool-leri5  172.20.1.17:8301  alive   client  1.4.2  2         hashidc1  <default>
gke-tier-2-cluster-default-pool-gnv4   172.20.2.17:8301  alive   client  1.4.2  2         hashidc1  <default>
gke-tier-2-cluster-default-pool-zrr0   172.20.0.20:8301  alive   client  1.4.2

Consul HTTP API

Вы можете использовать Consul HTTP API , связавшись с локальным агентом, работающим на узле Kubernetes.

Вы можете прочитать документацию, если хотите узнать больше об использовании Consul HTTP API с Kubernetes.

Источник: https://sidmid.ru/kubernetes-установить-cosnul/

Was this helpful?

0 / 0