Как настроить кластер K3s Kubernetes в Ubuntu 22.04
Как настроить кластер K3s Kubernetes в Ubuntu 22.04

Как настроить кластер K3s Kubernetes в Ubuntu 22.04

0 Акции
0
0
0
0

Как настроить кластер K3s Kubernetes в Ubuntu 22.04

Введение

Kubernetes — один из самых популярных в отрасли инструментов для оркестрации контейнеров. Однако настройка кластера Kubernetes с нуля может быть сложной задачей и требует большого количества настроек. Кроме того, существует несколько способов начать настройку кластера Kubernetes, но многие из них могут быть трудоемкими, если только вы не планируете создавать производственный кластер.

Чтобы упростить настройку кластера Kubernetes и обеспечить его развертывание в удаленных местах с ограниченными ресурсами — что делает его подходящим кандидатом для граничных вычислений — Rancher Labs разработала K3s. K3s — это легковесный дистрибутив Kubernetes, позволяющий установить кластер Kubernetes с помощью небольшого исполняемого файла за считанные минуты.

В этом руководстве вы узнаете, как установить K3s на Ubuntu и какие дополнительные параметры конфигурации доступны в K3s.

Предпосылки

Для выполнения этого урока вам понадобится:

Сервер Ubuntu 22.04 с объемом оперативной памяти не менее 1 ГБ был настроен в соответствии с руководством по первоначальной настройке сервера Ubuntu 22.04.

Шаг 1. Установите K3s.

На этом шаге вы установите последнюю версию K3s на свой компьютер с Ubuntu.

Если вы используете вход по паролю, войдите на сервер под учетной записью пользователя sudo (в этом руководстве это будет sammy), используя следующую команду:

$ ssh sammy@your_server_ip

سپس با استفاده از دستور زیر K3 را نصب کنید.

$ curl -sfL https://get.k3s.io | sh -

Для запуска скрипта вам будет предложено ввести пароль пользователя.

Эта команда использует curl для загрузки скрипта, расположенного по адресу https://get.k3s.io, и запускает его, передавая результат через –sh. После запуска скрипта начинается установка кластера K3s с параметрами конфигурации по умолчанию, которые создают одноузловой кластер Kubernetes.

Вы получите примерно такой вывод:

[secondary_label Output]

[INFO] Finding release for channel stable

[INFO] Using v1.27.7+k3s2 as release

[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/sha256sum-amd64.txt

[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/k3s

[INFO] Verifying binary download

[INFO] Installing k3s to /usr/local/bin/k3s

[INFO] Skipping installation of SELinux RPM

[INFO] Creating /usr/local/bin/kubectl symlink to k3s

[INFO] Creating /usr/local/bin/crictl symlink to k3s

[INFO] Creating /usr/local/bin/ctr symlink to k3s

[INFO] Creating killall script /usr/local/bin/k3s-killall.sh

[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh

[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env

[INFO] systemd: Creating service file /etc/systemd/system/k3s.service

[INFO] systemd: Enabling k3s unit

Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

[INFO] systemd: Starting k3s

...

В выводе скрипта показаны шаги, предпринятые скриптом установки для установки и запуска кластера. Далее вы проверите состояние службы K3s с помощью systemctl, чтобы узнать, запущена она или нет, используя следующую команду.

$ systemctl status k3s

Эта команда показывает статус как активный (работает):

[secondary_label Output]

● k3s.service - Lightweight Kubernetes

Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)

Active: active (running) since Mon 2023-11-27 16:52:01 UTC; 19s ago

Docs: https://k3s.io

Process: 8396 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exi>

Process: 8398 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)

Process: 8399 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)

Main PID: 8400 (k3s-server)

Tasks: 20

Memory: 467.3M

CPU: 12.952s

CGroup: /system.slice/k3s.service

├─8400 "/usr/local/bin/k3s server"

└─8421 "containerd " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

...

На этом этапе вы установили K3s на Ubuntu для создания одноузлового кластера Kubernetes. Далее вы ознакомитесь с объектами Kubernetes, развернутыми по умолчанию в кластере.

Шаг 2 – Проверка объектов Kubernetes по умолчанию

На этом этапе вы проверите объекты Kubernetes по умолчанию, развернутые после установки K3s.

Выполните следующую команду, чтобы увидеть все объекты Kubernetes, развернутые в кластере в пространстве имен kube. kubectl автоматически устанавливается во время установки K3s и поэтому не требует отдельной установки.

$ sudo kubectl get all -n kube-system

Вы получите примерно такой вывод:

[secondary_label Output]

NAME                                         READY   STATUS      RESTARTS   AGE

pod/local-path-provisioner-957fdf8bc-t8vpx   1/1     Running     0          4m34s

pod/coredns-77ccd57875-4hrd9                 1/1     Running     0          4m34s

pod/helm-install-traefik-crd-j2sqs           0/1     Completed   0          4m34s

pod/helm-install-traefik-mvxhw               0/1     Completed   1          4m34s

pod/metrics-server-648b5df564-gqxcz          1/1     Running     0          4m34s

pod/svclb-traefik-18597fcd-2cf68             2/2     Running     0          4m6s

pod/traefik-768bdcdcdd-srb8d                 1/1     Running     0          4m7s



NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE

service/kube-dns         ClusterIP      10.43.0.10      <none>           53/UDP,53/TCP,9153/TCP       4m44s

service/metrics-server   ClusterIP      10.43.69.115    <none>           443/TCP                      4m43s

service/traefik          LoadBalancer   10.43.149.125   159.65.159.115   80:32266/TCP,443:32628/TCP   4m7s



NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE

daemonset.apps/svclb-traefik-18597fcd   1         1         1       1            1           <none>          4m7s



NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/local-path-provisioner   1/1     1            1           4m44s

deployment.apps/coredns                  1/1     1            1           4m44s

deployment.apps/metrics-server           1/1     1            1           4m44s

deployment.apps/traefik                  1/1     1            1           4m7s



NAME                                               DESIRED   CURRENT   READY   AGE

replicaset.apps/local-path-provisioner-957fdf8bc   1         1         1       4m34s

replicaset.apps/coredns-77ccd57875                 1         1         1       4m34s

replicaset.apps/metrics-server-648b5df564          1         1         1       4m34s

replicaset.apps/traefik-768bdcdcdd                 1         1         1       4m7s



NAME                                 COMPLETIONS   DURATION   AGE

job.batch/helm-install-traefik-crd   1/1           28s        4m41s

job.batch/helm-install-traefik       1/1           31s        4m41s



...
 

Приведенный выше вывод показывает различные объекты, развернутые в кластере Kubernetes. Например, запущено 4 развертывания: по одному для coredns, local-path-provisioner, metrics-server и traefik.

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

Output
WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions

error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied

...

Чтобы избежать необходимости использования sudo при выполнении команд kubectl, измените права доступа к конфигурационному файлу с помощью команды chmod, как показано ниже.

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

На данном этапе вы проверили состояние объектов Kubernetes, развернутых в кластере K3s по умолчанию. Далее вы изучите и измените параметры конфигурации в K3s во время установки.

Шаг 3 – Изучение и изменение параметров конфигурации в K3S

Вы установили K3s, используя настройки по умолчанию, однако вы можете изменить конфигурацию для достижения индивидуального поведения, специфичного для кластера. На этом шаге вы узнаете, как использовать переменные среды в K3 для установки параметров в скрипте установки.

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

Переменная среды INSTALL_K3S_EXEC может использоваться для передачи флагов службе K3s. Следующая команда может быть использована для отключения Traefik во время установки K3s.

$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -

Проверьте объекты Kubernetes для подтверждения. Ресурсы контроллера в этот раз будут отсутствовать.

$ sudo kubectl get all -n kube-system

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

K3s использует конфигурационный файл, расположенный по адресу etc/rancher/k3s/config.yaml/.

Выполните следующую команду, чтобы создать и записать конфигурационный файл.

$ sudo nano /etc/rancher/k3s/config.yaml

Внесите следующее в конфигурационный файл.

$ disable: traefik

Нажмите Ctrl+X, чтобы записать и закрыть файл. Отключенная строка: traefik дает указание службе K3s удалить ресурсы, связанные с установкой traefik.

Затем перезапустите службу K3s, используя следующую команду, чтобы применить изменения.

$ sudo systemctl restart k3s

Теперь вы можете проверить это, перечислив все объекты Kubernetes в системном пространстве имен kube. В данный момент с установкой Traefik не должно быть связано никаких ресурсов.

$ sudo kubectl get all -n kube-system

На этом этапе вы узнали, как изменять конфигурацию K3s во время и после установки. Далее вы удалите кластер K3s, чтобы очистить виртуальные машины.

Шаг 4 – Удалите K3s

Для удаления K3S необходимо запустить скрипт оболочки с именем 'usr/local/bin/k3s-uninstall.sh/'. Скрипт автоматически генерируется после установки K3S и может использоваться для выполнения полной очистки. Во время удаления удаляются все инструменты конфигурации K3S и кластера, созданные или установленные во время установки K3S.

Для удаления K3 выполните следующую команду:

$ /usr/local/bin/k3s-uninstall.sh

Подтвердите удаление, проверив состояние службы K3s с помощью следующей команды:

$ systemctl status k3s

Вы получите примерно такой вывод:

[secondary_label Output]

Unit k3s.service could not be found.

Результат

В этой статье вы установили кластер K3s на Ubuntu и ознакомились с доступными параметрами конфигурации K3s и механизмом их использования. Теперь, когда вы настроили свой кластер Kubernetes, вам следует изучить различные типы объектов и их функциональность в Kubernetes.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться

Как установить IBSng на CentOS 6/7

Руководство по установке IBSng на CentOS 6/7 В этой статье приведено руководство по установке IBSng на CentOS 6/7, которое поможет вам…

Как войти на сервер Windows через удаленный рабочий стол

Как подключиться к серверу Windows через удалённый рабочий стол. Программное обеспечение для подключения к удалённому рабочему столу предоставляется бесплатно во всех версиях…