text
Я раніше використовував MiniCube, але виявилося, що є кращий спосіб — K3s. Ось чому: K3s має простіший і швидший процес налаштування, що робить його більш зручним як для новачків, так і для досвідчених користувачів. Для мене особисто можливість працювати з продукційно готовим дистрибутивом — це ключова перевага. Подивіться на це: K3s підтримує багатонадлові кластери «з коробки», що дозволяє створювати розподілені кластери на кількох пристроях або серверах!
Попередні вимоги (для Mac):
-
Xcode та Homebrew. Ознайомтеся з цим тут, якщо у вас їх ще немає.
-
Також не забудьте встановити Docker Desktop для macOS: Завантажити Docker Desktop. Ознайомтесь також з сумісністю Mac OS і Docker тут.
Потім введіть:
$ brew install k3d
Це все!
$ k3d - version
k3d version v5.8.1
k3s version v1.31.4-k3s1 (default)
Створимо перший кластер!
$k3d cluster create my
І ось результат:
INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-my'
INFO[0000] Created image volume k3d-my-images
INFO[0000] Starting new tools node...
INFO[0001] Pulling image 'ghcr.io/k3d-io/k3d-tools:5.8.1'
INFO[0001] Creating node 'k3d-my-server-0'
INFO[0002] Starting node 'k3d-my-tools'
INFO[0002] Pulling image 'docker.io/rancher/k3s:v1.31.4-k3s1'
INFO[0010] Creating LoadBalancer 'k3d-my-serverlb'
INFO[0011] Pulling image 'ghcr.io/k3d-io/k3d-proxy:5.8.1'
INFO[0013] Using the k3d-tools node to gather environment information
INFO[0013] Starting new tools node...
INFO[0013] Starting node 'k3d-my-tools'
INFO[0014] Starting cluster 'my'
INFO[0014] Starting servers...
INFO[0014] Starting node 'k3d-my-server-0'
INFO[0017] All agents already running.
INFO[0017] Starting helpers...
INFO[0017] Starting node 'k3d-my-serverlb'
INFO[0023] Injecting records for hostAliases (incl. host.k3d.internal) and for 3 network members into CoreDNS configmap..
Багато чого сталося — у нас є нова мережа, балансувальник навантаження, проксі, DNS. Але це ще не все!
$ kubectl cluster-info
Kubernetes control plane is running at https://0.0.0.0:55685
CoreDNS is running at https://0.0.0.0:55685/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://0.0.0.0:55685/api/v1/namespaces/kube-system/services/https:metrics-server:https/proxy
Отже, у нас є керуюча плата і сервер метрик!
Ось вигляд з консолі Docker:
Мені подобається командний рядок (хто ж не любить?) але для демонстрації давайте налаштуємо Kubernetes dashboard:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
$ kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
serviceaccount/dashboard-admin created
$ kubectl create clusterrolebinding dashboard-admin-binding \
> --clusterrole=cluster-admin \
> --serviceaccount=kubernetes-dashboard:dashboard-admin
$ kubectl -n kubernetes-dashboard create token dashboard-admin
Зверніть увагу, що остання команда виведе токен, який вам буде потрібен для доступу до інформаційної панелі.
Тепер ви готові запустити її (у окремому терміналі):
$ kubectl proxy
і отримати доступ:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Тут трохи самотньо, але ми тільки почали!
Перекладено з: Kubernetes on Mac M2(Apple silicon)