Kubernetes на Mac M2 (Apple Silicon)

text
Я раніше використовував MiniCube, але виявилося, що є кращий спосіб — K3s. Ось чому: K3s має простіший і швидший процес налаштування, що робить його більш зручним як для новачків, так і для досвідчених користувачів. Для мене особисто можливість працювати з продукційно готовим дистрибутивом — це ключова перевага. Подивіться на це: K3s підтримує багатонадлові кластери «з коробки», що дозволяє створювати розподілені кластери на кількох пристроях або серверах!

Попередні вимоги (для Mac):

  1. Xcode та Homebrew. Ознайомтеся з цим тут, якщо у вас їх ще немає.

  2. Також не забудьте встановити 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:

pic

Мені подобається командний рядок (хто ж не любить?) але для демонстрації давайте налаштуємо 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/

Тут трохи самотньо, але ми тільки почали!

pic

Перекладено з: Kubernetes on Mac M2(Apple silicon)

Leave a Reply

Your email address will not be published. Required fields are marked *