k3d

k3d є легкою обгорткою для запуску k3s (мінімального дистрибутиву Kubernetes від Rancher Lab) в Docker. k3d полегшує створення одновузлових та багатовузлових кластерів k3s у Docker, наприклад, для локальної розробки на Kubernetes.

Попередні умови

  • Для використання k3d вам також потрібно встановити Docker.
  • Встановіть останню версію k3d.
  • Для взаємодії з кластером Kubernetes встановіть kubectl.
  • (Необов’язково) Helm — менеджер пакетів для Kubernetes.

Встановлення

  1. Створіть кластер і вимкніть Traefik за допомогою наступної команди:

    $ k3d cluster create --api-port 6550 -p '9080:80@loadbalancer' -p '9443:443@loadbalancer' --agents 2 --k3s-arg '--disable=traefik@server:*'
  2. Щоб переглянути список кластерів k3d, скористайтеся наступною командою:

    $ k3d cluster list
    k3s-default
  3. Щоб переглянути локальні контексти Kubernetes, скористайтеся наступною командою.

    $ kubectl config get-contexts
    CURRENT   NAME                 CLUSTER              AUTHINFO             NAMESPACE
    *         k3d-k3s-default      k3d-k3s-default      k3d-k3s-default
  4. Якщо ви запускаєте кілька кластерів, вам потрібно вибрати, з яким кластером буде взаємодіяти kubectl. Ви можете встановити стандартний кластер для kubectl, змінивши поточний контекст у файлі Kubernetes kubeconfig. Також ви можете виконати наступну команду, щоб встановити поточний контекст для kubectl.

    $ kubectl config use-context k3d-k3s-default
    Switched to context "k3d-k3s-default".

Налаштування Istio для k3d

  1. Після налаштування кластера k3d ви можете перейти до встановлення Istio за допомогою Helm 3 на ньому.

    $ kubectl create namespace istio-system
    $ helm install istio-base istio/base -n istio-system --wait
    $ helm install istiod istio/istiod -n istio-system --wait
  2. (Необов’язково) Встановіть ingress gateway:

    $ helm install istio-ingressgateway istio/gateway -n istio-system --wait

Налаштування Dashboard UI для k3d

k3d не має вбудованого Dashboard UI, як minikube. Але ви все ще можете налаштувати Dashboard, вебінтерфейс Kubernetes, для перегляду вашого кластера. Слідуйте цим інструкціям, щоб налаштувати Dashboard для k3d.

  1. Щоб розгорнути Dashboard, виконайте наступні команди:

    $ helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
    $ helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
  2. Перевірте, що Dashboard розгорнуто та працює.

    $ kubectl get pod -n kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-8c47d4b5d-dd2ks    1/1     Running   0          25s
    kubernetes-dashboard-67bd8fc546-4xfmm        1/1     Running   0          25s
  3. Створіть ServiceAccount і ClusterRoleBinding, щоб надати адміністративний доступ до новоствореного кластера.

    $ kubectl create serviceaccount -n kubernetes-dashboard admin-user
    $ kubectl create clusterrolebinding -n kubernetes-dashboard admin-user --clusterrole cluster-admin --serviceaccount=kubernetes-dashboard:admin-user
  4. Щоб увійти в Dashboard, вам потрібен Bearer Token. Використовуйте наступну команду, щоб зберегти токен у змінній.

    $ token=$(kubectl -n kubernetes-dashboard create token admin-user)

    Виведіть токен за допомогою команди echo і скопіюйте його для входу в Dashboard.

    $ echo $token
  5. Ви можете отримати доступ до Dashboard, використовуючи командний рядок kubectl, виконавши наступну команду:

    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001

    Перейдіть до Kubernetes Dashboard для перегляду ваших розгортань та сервісів.

Видалення

  1. Коли ви закінчите експериментувати та захочете видалити поточний кластер, скористайтеся наступною командою:

    $ k3d cluster delete k3s-default
    Deleting cluster "k3s-default" ...
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!