K3D — це легковажна обгортка навколо k3s, яка дозволяє запускати кластери Kubernetes всередині контейнерів Docker. Хоча K3D здебільшого використовується для локальної розробки та тестування, ефективний моніторинг сервісів, що працюють на кластерах Kubernetes, є важливим для налагодження, оптимізації продуктивності та розуміння використання ресурсів.
У цьому блозі я розгляну два популярні інструменти моніторингу для Kubernetes: Kubernetes Dashboard — офіційний веб-інтерфейс для Kubernetes, та Octant — локальна, реальна, самостійна панель керування, розроблена VMware. Обидва інструменти мають свої унікальні переваги, і цей посібник допоможе вам зрозуміти, коли варто використовувати один з них замість іншого.
Налаштування Kubernetes Dashboard на K3D
Спочатку потрібно створити кластер за допомогою команди k3d cluster create
:
$ k3d cluster create dashboard --servers 1 --agents 2
INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-dashboard'
INFO[0000] Created image volume k3d-dashboard-images
INFO[0000] Starting new tools node...
INFO[0000] Starting node 'k3d-dashboard-tools'
INFO[0001] Creating node 'k3d-dashboard-server-0'
INFO[0001] Creating node 'k3d-dashboard-agent-0'
INFO[0001] Creating node 'k3d-dashboard-agent-1'
INFO[0001] Creating LoadBalancer 'k3d-dashboard-serverlb'
INFO[0001] Using the k3d-tools node to gather environment information
INFO[0001] HostIP: using network gateway 172.18.0.1 address
INFO[0001] Starting cluster 'dashboard'
INFO[0001] Starting servers...
INFO[0001] Starting node 'k3d-dashboard-server-0'
INFO[0008] Starting agents...
INFO[0008] Starting node 'k3d-dashboard-agent-0'
INFO[0008] Starting node 'k3d-dashboard-agent-1'
INFO[0015] Starting helpers...
INFO[0016] Starting node 'k3d-dashboard-serverlb'
INFO[0022] Injecting records for hostAliases (incl. host.k3d.internal) and for 4 network members into CoreDNS configmap...
INFO[0024] Cluster 'dashboard' created successfully!
INFO[0024] You can now use it like this:
kubectl cluster-info
Далі, розгорніть Kubernetes Dashboard:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Перевірте, чи працюють ваші pod-и:
$ kubectl get pods -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-795895d745-kcbkw 1/1 Running 0 10m
kubernetes-dashboard-56cf4b97c5-fg92n 1/1 Running 0 10m
Далі створіть обліковий запис сервісу та прив'яжіть роль. Щоб отримати доступ до панелі керування, вам необхіден обліковий запис сервісу з відповідними дозволами.
Створіть обліковий запис сервісу та прив'язку ролі кластера за допомогою наступного YAML:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
Застосуйте цю конфігурацію:
$ kubectl apply -f admin-user.yamlserviceaccount/admin-user created
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
Далі, отримайте токен для входу за допомогою:
$ kubectl -n kubernetes-dashboard create token admin-user
Використовуйте kubectl proxy
, щоб отримати доступ до панелі керування:
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
Нарешті, відкрийте браузер і перейдіть за адресою:
http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy
Скопіюйте та вставте токен.
Kubernetes Dashboard
Налаштування Octant на K3D
Спочатку потрібно встановити Octant. Ви можете встановити Octant за допомогою менеджера пакетів або завантажити його безпосередньо з офіційних релізів. Наприклад, на macOS ви можете використовувати Homebrew:
brew install octant
Далі, на Linux просто завантажте відповідний бінарний файл і перемістіть його в ваш шлях:
$ wget https://github.com/vmware-tanzu/octant/releases/download/v0.25.1/octant_0.25.1_Linux-64bit.tar.gz
$ tar -xvzf octant_0.25.1_Linux-64bit.tar.gz && mv octant_0.25.1_Linux-64bit octant
$ rm octant_0.25.1_Linux-64bit.tar.gz
Далі, щоб запустити Octant, просто виконайте бінарний файл:
$ cd octant
$ ./octant
Нарешті, ви побачите панель керування:
Panely керування Octant
Порівняння: Kubernetes Dashboard проти Octant
Висновок
І Kubernetes Dashboard, і Octant пропонують цінні можливості для моніторингу кластерів Kubernetes в K3D. Якщо вам потрібно швидко та просто моніторити ваш локальний кластер з мінімальними налаштуваннями, Octant — чудовий вибір. З іншого боку, якщо ви хочете досвід, наближений до управління виробничим середовищем, Kubernetes Dashboard буде кращим варіантом.
Посилання:
- Розгортання та доступ до Kubernetes Dashboard. https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard.
- Встановлення Dashboard на K3D. https://gist.github.com/smijar/64e76808c8a349eb64f56c71dc03d8d8.
- Налаштування Kubernetes Dashboard на кластері K3D. https://medium.com/@mamoonaaslam/setting-up-kubernetes-dashboard-on-k3d-cluster-7bd2e261e42a.
Перекладено з: K3D: Monitoring Your Service using Kubernetes Dashboard or Octant