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" ...