Kubernetes Dashboard Terminator: Kubesphere

облачный носитель

Оригинальная ссылка:Терминатор панели инструментов Kubernetes: KubeSphere

В июле 2018 года Qingyun запустила новую контейнерную платформу на саммите Cloud Insight Cloud Computing Summit——KubeSphere, призванный помочь предприятиям быстро и экономично управлять контейнерами. иKubeSphereЭто открытый исходный код. Это распределенная многопользовательская контейнерная платформа с открытым исходным кодом корпоративного уровня, основанная на Kubernetes. Она обладает мощными и полными возможностями сети и хранилища, а также обеспечивает полное управление несколькими кластерами, CI / CD, управление микросервисами, управление приложениями и другие функции помогают предприятиям быстро создавать, развертывать и эксплуатировать контейнерные архитектуры в гетерогенных инфраструктурах, таких как облако, виртуализация и физические машины, а также осуществлять гибкую разработку приложений и управление полным жизненным циклом.

Последняя версия KubeSphere является расширенной версией.2.0.2, и все версии имеют 100% открытый исходный код. Его панель инструментов выглядит следующим образом:

Основной интерфейс KubeSphere

Интерфейс управления микросервисами Istio

Многомерный интерфейс мониторинга

Этот внешний вид выше, чем панель инструментов Kubernetes.Заинтересованные друзья могут дать звезду Github, чтобы поощрить брата-разработчика. Чтобы посетить официальный сайт, пожалуйста, нажмите здесь:kubesphere.io

Официальный веб-сайт KubeSphere предлагает примерно два метода установки: один — установить кластер k8s и KubeSphere, а другой — установить KubeSphere на существующий кластер k8s. Я думаю, что большинство потребностей пользователей должны быть установлены на существующих кластерах, но в схеме развертывания, приведенной в официальных документах, есть много странных ям, которые эта статья заполнит для вас одну за другой.

1. Подготовка окружающей среды

当然,还有些同学可能会和我一样有强迫症,即使目前没有现成的 Kubernetes 环境,我也不想让 KubeSphere 给我来个全家桶,还是想自己搭建 k8s 集群,怎么办,二进制部署好烦啊,像我这种菜鸟没有半天搞不定,有没有简单快捷的方法,十分钟就能建好集群? Конечно, сsealosВот и все, всего одна команда для установки всех зависимостей между хостами, не нужноansible, вам не нужно ssh для входа на другие машины, вам нужно сделать некоторые приготовления перед установкой:

План моей машины такой:

Hostname IP Role
sealos-node1 192.168.0.2 master
sealos-node2 192.168.0.3 node
sealos-node3 192.168.0.4 node

Этапы установки делятся на следующие этапы:

1. Выполните следующую команду на ведущем устройстве:

$ sealos init --master 192.168.0.2 \
  --node 192.168.0.3 \
  --node 192.168.0.4 \
  --user root \
  --passwd password \
  --version v1.14.5 \
  --pkg-url /root/kube1.14.5.tar.gz

2. Не более.

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

Ниже приведена официальная запись об установке KubeSphere.

2. Установите Кубесферу

1. В первую очередьks-installerРепозиторий клонирован на основной ноде:

$ git clone https://github.com/kubesphere/ks-installer -b advanced-2.0.2

2. Создайте кластер Kubernetes с именемkubesphere-systemиkubesphere-monitoring-systemПространство имен.

3. Создайте Секрет сертификата ЦС кластера Kubernetes.

Примечание. Создается в соответствии с текущими путями сертификатов кластера ca.crt и ca.key (путь сертификата для Kubeadm для создания кластера обычно/etc/kubernetes/pki)

$ kubectl -n kubesphere-system create secret generic kubesphere-ca  \
--from-file=ca.crt=/etc/kubernetes/pki/ca.crt  \
--from-file=ca.key=/etc/kubernetes/pki/ca.key 

4. Создайте секрет сертификата etcd.

Примечание. Создается в соответствии с фактическим местоположением сертификата etcd кластера;

  • Если etcd настроен с сертификатом, создайте его следующим образом:
$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs  \
--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt  \
--from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt  \
--from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key
  • Если etcd не настроил сертификат, создайте пустой секрет (применимые kubernetes Следующая команда в кластерной среде KubeAdm создана):
$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs

Здесь я использую sealos для создания кластера.Вы можете получить его сертификат, просмотрев файл манифеста ресурсов etcd:

5. Измените файл развертывания

Так как в процессе развертывания KubeSphere задействовано много компонентов, в процессе установки будет много необъяснимых ям.Вы можете столкнуться со следующими проблемами:

**Вопрос 1:** Если метрик-сервер уже установлен в существующем кластере, его необходимо добавить в конфигурационный файлmetrics_server_enableУстановите значение «Ложь». Этот компонент не установлен в моем кластере, поэтому не устанавливайте для него значение False.

**Проблема 2:** зависание во время установкиWaitting for ks-sonarqube port to become openчасть, sonarqube уже можно нормально получить на узле через NodePort, эта проблема не решена, потому что это операция, которая не влияет на глобальную установку, поэтому она также будет добавлена ​​в файл конфигурацииsonarqube_enableУстановите значение «Ложь».

**Вопрос 3:** Если текущих ресурсов кластера недостаточно, вы можете временно отменить установку istio, а затем включить поддержку istio позже.

**Вопрос 4: **Компоненты KubeSphere по умолчанию используют постоянное хранилище.StorageClassРесурсный объект, если у вас его действительно нет, вы просто хотите временно развернуть демо, вы можете поместить его в файл конфигурацииpersistenceвнутриenableУстановите значение «ложь».

Файл конфигурации, который я использовал для установки KubeSphere, выглядит следующим образом:

ConfigMap нужно только изменить значения, на которыеkube_apiserver_hostадрес APIServer существующего кластера,etcd_endpoint_ipsЭто IP-адрес узла, на котором расположен etcd.Порт по умолчанию — 2379. Если вы находитесь в режиме кластера etcd, вы можете указать здесь несколько IP-адресов узлов.,Отдельные компоненты, которые не нужно устанавливать, имеют значение False.

6. Настройте образ Docker.

Поскольку в настоящее время ведение журнала нельзя отключить в ConfigMap, мы можем только принудительно изменить ansible playbook. Перейдите в корневой каталог ks-installer, поместитеkubesphere.yamlсерединаks-loggingУдалить:

затем изменитьDockerfile, замените Helm v2 на Helm v3, потому что вы знаете, я не хочу устанавливать румпель. Содержимое модифицированного Dockerfile выглядит следующим образом:

Наконец, перестройте образ, измените образ развертывания в файле развертывания на собственный образ и разверните его напрямую:

$ kubectl apply -f deploy/kubesphere.yaml

$ kubectl -n kubesphere-system get pod
NAME                                     READY   STATUS      RESTARTS   AGE
ks-account-585846bd44-mt7ss              1/1     Running     0          3h9m
ks-apigateway-7d77cb9495-hxgz8           1/1     Running     0          3h9m
ks-apiserver-697c5f4859-dsbmm            1/1     Running     0          3h7m
ks-console-5b8fbf45c4-7hxrw              1/1     Running     0          3h8m
ks-console-5b8fbf45c4-hj4bj              1/1     Running     0          3h8m
ks-controller-manager-7497f6c944-4k8wd   1/1     Running     0          3h8m
ks-docs-65999c97c9-5f9z7                 1/1     Running     0          3h37m
kubesphere-installer-6j49s               0/1     Completed   0          3h10m
openldap-78df9f7b47-wvs5n                1/1     Running     0          3h38m
redis-99f5985b8-2d62q                    1/1     Running     0          3h38m

$ kubectl -n kubesphere-system get job
NAME                   COMPLETIONS   DURATION   AGE
kubesphere-installer   1/1           2m9s       3h10m

Если задание, использованное для установки выше, находится в завершенном состоянии, это доказывает, что KubeSphere была успешно установлена.

может создатьIngressRouteобъект для доступа к KubeSphere:

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

Учетная запись администратора кластера по умолчанию:

  • Имя пользователя: админ
  • Пароль: P@88w0rd

Для подробного использования, пожалуйста, обратитесь к официальной документации:kubesphere.io/docs/zh-CN/

3. Ссылки

Публичный аккаунт WeChat

Отсканируйте QR-код ниже, чтобы подписаться на официальную учетную запись WeChat, и ответьте на официальную учетную запись ◉Добавить группу◉, чтобы присоединиться к нашей облачной коммуникационной группе и обсудить облачные технологии с Сунь Хунляном, директором Чжаном, Ян Мином и другими важными шишками.