From a3096ba1b696419c6fc56942cb8e8aea646bd505 Mon Sep 17 00:00:00 2001 From: dannc Date: Thu, 27 Oct 2022 10:47:07 +0700 Subject: [PATCH] homework 12.1: complete task 1, partially complete task 2 --- .../12-kubernetes/12.1/img/k8s_dashboard.png | Bin 0 -> 44261 bytes src/homework/12-kubernetes/12.1/readme.md | 165 ++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 src/homework/12-kubernetes/12.1/img/k8s_dashboard.png create mode 100644 src/homework/12-kubernetes/12.1/readme.md diff --git a/src/homework/12-kubernetes/12.1/img/k8s_dashboard.png b/src/homework/12-kubernetes/12.1/img/k8s_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f34d120d75f74eb639260975fc400db11e3650 GIT binary patch literal 44261 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®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 Установить Minikube +> +> Для экспериментов и валидации ваших решений вам нужно подготовить тестовую среду для работы с Kubernetes. +> Оптимальное решение — развернуть на рабочей машине Minikube. +> +> Как поставить на yandex.cloud: +> - создать виртуальную машину +> - подключитесь к серверу по ssh +> - установите миникуб и докер следующими командами: +> - curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl +> - chmod +x ./kubectl +> - sudo mv ./kubectl /usr/local/bin/kubectl +> - curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ +> - проверить версию можно командой minikube version +> - переключаемся на root и запускаем миникуб: minikube start --vm-driver=none +> - после запуска стоит проверить статус: minikube status +> - запущенные служебные компоненты можно увидеть командой: kubectl get pods --namespace=kube-system +> +> Для сброса кластера стоит удалить кластер и создать заново +> - minikube delete +> - minikube start --vm-driver=none +> +> Возможно, для повторного запуска потребуется выполнить команду: sudo sysctl fs.protected_regular=0 +> +> Инструкция по установке Minikube - [ссылка](https://kubernetes.io/ru/docs/tasks/tools/install-minikube/) + +Для начала нужно создать виртуальную машину в `yandex.cloud`. Затем подключиться к ней по ssh и выполнить команды по установке [`docker`](https://docs.docker.com/engine/install/ubuntu/) и `minikube`. +Результатом будет установленная утилита: + +```shell +minikube version +``` + +```text +minikube version: v1.27.1 +commit: fe869b5d4da11ba318eb84a3ac00f336411de7ba +``` + +Следующим шагом нужно запустить `minikube`: + +```shell +minikube start --vm-driver=docker +``` + +Здесь используется драйвер `docker`, так как это [рекомендация из документации](https://minikube.sigs.k8s.io/docs/drivers/none/): + +```text +Most users of this driver should consider the newer Docker driver, as it is significantly easier to configure and does not require root access. The ‘none’ driver is recommended for advanced users only. +``` + +Затем нужно проверить статус `minikube`: + +```shell +minikube status +``` + +```text +minikube +type: Control Plane +host: Running +kubelet: Running +apiserver: Running +kubeconfig: Configured +``` + +```shell +kubectl get pods --namespace=kube-system +``` + +```text +NAME READY STATUS RESTARTS AGE +coredns-565d847f94-8qpml 1/1 Running 0 66s +etcd-minikube 1/1 Running 0 79s +kube-apiserver-minikube 1/1 Running 0 79s +kube-controller-manager-minikube 1/1 Running 0 79s +kube-proxy-dvrgd 1/1 Running 0 66s +kube-scheduler-minikube 1/1 Running 0 79s +storage-provisioner 1/1 Running 0 73s +``` + +### Задание 2 + +> Запуск Hello World +> +> После установки Minikube требуется его проверить. Для этого подойдет стандартное приложение hello world. А для доступа к нему потребуется ingress. +> +> - развернуть через Minikube тестовое приложение по [туториалу](https://kubernetes.io/ru/docs/tutorials/hello-minikube/#%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0-minikube) +> - установить аддоны ingress и dashboard + +Активация dashboard: + +```shell +minikube dashboard +``` + +Так как `minikube` по умолчанию делает доступ до dashboard только изнутри виртуальной машины, +то необходимо дополнительно запустить `kubectl proxy`, чтобы иметь возможность попасть в `dashboard` из-вне: + +```shell +kubectl proxy --address='0.0.0.0' --disable-filter=true +``` + +Результат: +![k8s_dashboard](./img/k8s_dashboard.png) + +Для деплоя `hello-node` сервиса нужно выполнить команду: + +```shell +kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4\ +kubectl get deployments +``` + +```text +NAME READY UP-TO-DATE AVAILABLE AGE +hello-node 1/1 1 1 45s +``` + +```shell +kubectl get pods +``` + +```text +NAME READY STATUS RESTARTS AGE +hello-node-697897c86-wczpg 1/1 Running 0 69s +``` + +Открытие `hello-node` для пользователей из-вне кластера: + +```shell +kubectl expose deployment hello-node --type=LoadBalancer --port=8080 +minikube service hello-node +``` + +В таком случае в консоль будет выведен ip-адрес, который можно использовать для обращения к сервису, +но только изнутри виртуальной машины. + +// todo разобраться, как сделать доступным сервис из-вне + +### Задание 3 + +> Установить kubectl +> +> Подготовить рабочую машину для управления корпоративным кластером. Установить клиентское приложение kubectl. +> - подключиться к minikube +> - проверить работу приложения из задания 2, запустив port-forward до кластера + +// todo + +### Задание 4 + +> Собрать через ansible +> +> Профессионалы не делают одну и ту же задачу два раза. Давайте закрепим полученные навыки, автоматизировав выполнение заданий ansible-скриптами. +> При выполнении задания обратите внимание на доступные модули для k8s под ansible. +> - собрать роль для установки minikube на сервисе (с установкой ingress) +> - собрать роль для запуска в кластере hello world + +// todo