K3S на вашей машине для разработки с помощью multipass

В этом посте мы разберем, как получить рабочий экземпляр kubernetes на вашем mac (или другой машине для разработки).

Шаг 1: Установите multipass

Multipass — это легкий менеджер виртуальных машин Linux, windows и Mac. Он полезен для быстрого создания песочницы Ubuntu без VirtualBox, Parallels или других менеджеров виртуальных машин.

❯ brew install multipass
Running `brew update --preinstall`...
==> Downloading https://github.com/canonical/multipass/releases/download/v1.9.0/multipass-1.9.0+mac-Darwin.pkg
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/114128199/8e737c39-9608-4e94-a230-641237a83b7a?X-Amz
######################################################################## 100.0%
==> Installing Cask multipass
==> Running installer for multipass; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
Password:
installer: Package name is multipass
installer: Installing at base path /
installer: The install was successful.
🍺  multipass was successfully installed!

❯ multipass version
multipass   1.9.0+mac
multipassd  1.9.0+mac
Войдите в полноэкранный режим Выход из полноэкранного режима
Шаг 2: Запуск экземпляра виртуальной машины Ubuntu
❯ multipass launch --name k3s-demo --cpus 2 --mem 4g --disk 20g
Launched: k3s-demo

❯ multipass info k3s-demo
Name:           k3s-demo
State:          Running
IPv4:           192.168.64.3
Release:        Ubuntu 20.04.4 LTS
Image hash:     147e0cea207e (Ubuntu 20.04 LTS)
Load:           0.90 0.26 0.09
Disk usage:     1.3G out of 19.2G
Memory usage:   158.4M out of 3.8G
Mounts:         --
Войти в полноэкранный режим Выход из полноэкранного режима
Шаг 3: Установите k3s
❯ multipass exec k3s-demo -- bash -c "curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -"

[INFO]  Finding release for channel stable
[INFO]  Using v1.23.6+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.23.6+k3s1/sha256sum-arm64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.23.6+k3s1/k3s-arm64
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

Войти в полноэкранный режим Выйти из полноэкранного режима
Шаг 4: Настройте k3s для использования с хоста
# Get the instance IPK3S_IP=$(multipass info k3s-demo | grep IPv4 | awk '{print $2}')echo $K3S_IP
192.168.64.3

# Get the admin yaml
❯ multipass exec k3s-demo sudo cat /etc/rancher/k3s/k3s.yaml > ${HOME}/k3s.conf

# Update the IP address to the one mapped by multipasssed -i "s/127.0.0.1/${K3S_IP}/" ${HOME}/k3s.conf

❯ chmod 600 ${HOME}/k3s.conf

Войти в полноэкранный режим Выйти из полноэкранного режима
Шаг 5: Проверьте, что все работает
export KUBECONFIG=${HOME}/k3s.conf

❯ kubectl get nodes
NAME       STATUS   ROLES                  AGE   VERSION
k3s-demo   Ready    control-plane,master   13m   v1.23.6+k3s1

❯ kubectl run test-pod --image=nginx --restart=Never
pod/test-pod created

❯ kubectl get pods
NAME       READY   STATUS    RESTARTS   AGE
test-pod   1/1     Running   0          88s

❯ kubectl expose pod/test-pod --port=80 --type=NodePort
service/test-pod exposed

❯ kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE   SELECTOR
kubernetes   ClusterIP   10.43.0.1     <none>        443/TCP        25m   <none>
test-pod     NodePort    10.43.73.25   <none>        80:31388/TCP   5s    run=test-pod

❯ curl -I ${K3S_IP}:31388
HTTP/1.1 200 OK
Server: nginx/1.21.6
Date: Thu, 26 May 2022 07:17:02 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 25 Jan 2022 15:03:52 GMT
Connection: keep-alive
ETag: "61f01158-267"
Accept-Ranges: bytes

Войти в полноэкранный режим Выйти из полноэкранного режима

многопроходная уборка
  • Вывести список всех экземпляров
❯ multipass list
Name                    State             IPv4             Image
k3s-demo                Running           192.168.64.3     Ubuntu 20.04 LTS
k3s-demo2               Running           192.168.64.4     Ubuntu 20.04 LTS

Вход в полноэкранный режим Выйти из полноэкранного режима
  • Удалить экземпляр
❯ multipass delete k3s-demo2

Войти в полноэкранный режим Выйти из полноэкранного режима
  • Очистка и восстановление ресурсов из удаленных экземпляров
❯ multipass purge

Войти в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий