k3d
k3d є легкою обгорткою для запуску k3s (мінімального дистрибутиву Kubernetes від Rancher Lab) в Docker. k3d полегшує створення одновузлових та багатовузлових кластерів k3s у Docker, наприклад, для локальної розробки на Kubernetes.
Попередні умови
- Для використання k3d вам також потрібно встановити Docker.
- Встановіть останню версію k3d.
- Для взаємодії з кластером Kubernetes встановіть kubectl.
- (Необов’язково) Helm — менеджер пакетів для Kubernetes.
Встановлення
Створіть кластер і вимкніть
Traefik
за допомогою наступної команди:$ k3d cluster create --api-port 6550 -p '9080:80@loadbalancer' -p '9443:443@loadbalancer' --agents 2 --k3s-arg '--disable=traefik@server:*'
Щоб переглянути список кластерів k3d, скористайтеся наступною командою:
$ k3d cluster list k3s-default
Щоб переглянути локальні контексти Kubernetes, скористайтеся наступною командою.
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * k3d-k3s-default k3d-k3s-default k3d-k3s-default
Якщо ви запускаєте кілька кластерів, вам потрібно вибрати, з яким кластером буде взаємодіяти
kubectl
. Ви можете встановити стандартний кластер дляkubectl
, змінивши поточний контекст у файлі Kubernetes kubeconfig. Також ви можете виконати наступну команду, щоб встановити поточний контекст дляkubectl
.$ kubectl config use-context k3d-k3s-default Switched to context "k3d-k3s-default".
Налаштування Istio для k3d
Після налаштування кластера 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
(Необов’язково) Встановіть ingress gateway:
$ helm install istio-ingressgateway istio/gateway -n istio-system --wait
Налаштування Dashboard UI для k3d
k3d не має вбудованого Dashboard UI, як minikube. Але ви все ще можете налаштувати Dashboard, вебінтерфейс Kubernetes, для перегляду вашого кластера. Слідуйте цим інструкціям, щоб налаштувати Dashboard для k3d.
Щоб розгорнути 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
Перевірте, що 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
Створіть
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
Щоб увійти в Dashboard, вам потрібен Bearer Token. Використовуйте наступну команду, щоб зберегти токен у змінній.
$ token=$(kubectl -n kubernetes-dashboard create token admin-user)
Виведіть токен за допомогою команди
echo
і скопіюйте його для входу в Dashboard.$ echo $token
Ви можете отримати доступ до Dashboard, використовуючи командний рядок kubectl, виконавши наступну команду:
$ kubectl proxy Starting to serve on 127.0.0.1:8001
Перейдіть до Kubernetes Dashboard для перегляду ваших розгортань та сервісів.
Видалення
Коли ви закінчите експериментувати та захочете видалити поточний кластер, скористайтеся наступною командою:
$ k3d cluster delete k3s-default Deleting cluster "k3s-default" ...