mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
homework 12.1: complete task 2, partially complete task 3
This commit is contained in:
32
src/homework/12-kubernetes/12.1/minikube-config.yml
Normal file
32
src/homework/12-kubernetes/12.1/minikube-config.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
apiersion: v1
|
||||||
|
clusters:
|
||||||
|
- cluster:
|
||||||
|
#certificate-authority: /home/dannc/.minikube/ca.crt
|
||||||
|
extensions:
|
||||||
|
- extension:
|
||||||
|
last-update: Mon, 31 Oct 2022 03:10:28 UTC
|
||||||
|
provider: minikube.sigs.k8s.io
|
||||||
|
version: v1.27.1
|
||||||
|
name: cluster_info
|
||||||
|
server: http://84.252.137.29:8001
|
||||||
|
name: minikube
|
||||||
|
contexts:
|
||||||
|
- context:
|
||||||
|
cluster: minikube
|
||||||
|
extensions:
|
||||||
|
- extension:
|
||||||
|
last-update: Mon, 31 Oct 2022 03:10:28 UTC
|
||||||
|
provider: minikube.sigs.k8s.io
|
||||||
|
version: v1.27.1
|
||||||
|
name: context_info
|
||||||
|
namespace: default
|
||||||
|
user: minikube
|
||||||
|
name: minikube
|
||||||
|
current-context: minikube
|
||||||
|
kind: Config
|
||||||
|
preferences: {}
|
||||||
|
users:
|
||||||
|
- name: minikube
|
||||||
|
user:
|
||||||
|
#client-certificate: /home/dannc/.minikube/profiles/minikube/client.crt
|
||||||
|
#client-key: /home/dannc/.minikube/profiles/minikube/client.key
|
||||||
@@ -114,7 +114,7 @@ kubectl proxy --address='0.0.0.0' --disable-filter=true
|
|||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4\
|
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4\
|
||||||
kubectl get deployments
|
&& kubectl get deployments
|
||||||
```
|
```
|
||||||
|
|
||||||
```text
|
```text
|
||||||
@@ -131,17 +131,36 @@ NAME READY STATUS RESTARTS AGE
|
|||||||
hello-node-697897c86-wczpg 1/1 Running 0 69s
|
hello-node-697897c86-wczpg 1/1 Running 0 69s
|
||||||
```
|
```
|
||||||
|
|
||||||
Открытие `hello-node` для пользователей из-вне кластера:
|
Установка дополнений (только `ingress`, так как `dashboard` включён по умолчанию):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
|
minikube addons enable ingress
|
||||||
minikube service hello-node
|
|
||||||
```
|
```
|
||||||
|
|
||||||
В таком случае в консоль будет выведен ip-адрес, который можно использовать для обращения к сервису,
|
Проверка установки:
|
||||||
но только изнутри виртуальной машины.
|
|
||||||
|
|
||||||
// todo разобраться, как сделать доступным сервис из-вне
|
```shell
|
||||||
|
minikube addons list
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
|-----------------------------|----------|--------------|--------------------------------|
|
||||||
|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|
||||||
|
|-----------------------------|----------|--------------|--------------------------------|
|
||||||
|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
|
||||||
|
| auto-pause | minikube | disabled | Google |
|
||||||
|
| csi-hostpath-driver | minikube | disabled | Kubernetes |
|
||||||
|
| dashboard | minikube | enabled ✅ | Kubernetes |
|
||||||
|
| default-storageclass | minikube | enabled ✅ | Kubernetes |
|
||||||
|
| ... | ... | ... | ... |
|
||||||
|
| ingress | minikube | enabled ✅ | Kubernetes |
|
||||||
|
| ingress-dns | minikube | disabled | Google |
|
||||||
|
| ... | ... | ... | ... || registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
|
||||||
|
| storage-provisioner | minikube | enabled ✅ | Google |
|
||||||
|
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
|
||||||
|
| volumesnapshots | minikube | disabled | Kubernetes |
|
||||||
|
|-----------------------------|----------|--------------|--------------------------------|
|
||||||
|
```
|
||||||
|
|
||||||
### Задание 3
|
### Задание 3
|
||||||
|
|
||||||
@@ -151,15 +170,27 @@ minikube service hello-node
|
|||||||
> - подключиться к minikube
|
> - подключиться к minikube
|
||||||
> - проверить работу приложения из задания 2, запустив port-forward до кластера
|
> - проверить работу приложения из задания 2, запустив port-forward до кластера
|
||||||
|
|
||||||
// todo
|
Для подключения к `minikube` с другой машины необходимо:
|
||||||
|
- Взять конфигурацию `~/.kube/config` с виртуальной машины и перенести её в `~/.kube/minikube-config` со следующими изменениями:
|
||||||
|
- закомментировать ключ `certificate-authority`, `client-certificate`, `client-key`
|
||||||
|
- заменить значение ключа `server` на ip-адрес виртуальной машины и порт `8001` (обязательно должна выполняться команда `kubectl proxy`)
|
||||||
|
|
||||||
### Задание 4
|
Пример полученного файла: [minikube-config](./minikube-config.yml)
|
||||||
|
|
||||||
> Собрать через ansible
|
После этого можно выполнять команды по работе с кластером:
|
||||||
>
|
|
||||||
> Профессионалы не делают одну и ту же задачу два раза. Давайте закрепим полученные навыки, автоматизировав выполнение заданий ansible-скриптами.
|
|
||||||
> При выполнении задания обратите внимание на доступные модули для k8s под ansible.
|
|
||||||
> - собрать роль для установки minikube на сервисе (с установкой ingress)
|
|
||||||
> - собрать роль для запуска в кластере hello world
|
|
||||||
|
|
||||||
// todo
|
```shell
|
||||||
|
kubectl --kubeconfig ~/.kube/minikube-config cluster-info
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
Kubernetes control plane is running at http://84.252.137.29:8001
|
||||||
|
CoreDNS is running at http://84.252.137.29:8001/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
Судя по [статье](https://habr.com/ru/company/vk/blog/648117/), проброс порта для сервиса `minikube` может происходить тремя разными способами:
|
||||||
|
- С помощью команды `minikube service <название сервиса>`
|
||||||
|
- Использовать команду `port-forward`, чтобы сопоставить сервис и `localhost`
|
||||||
|
- Открыть порты (либо диапазоны портов) при запуске `minikube`
|
||||||
|
|
||||||
|
Но ни один из этих способов не дал возможности делать запросы с локального хоста на сервис внутри кластера `minikube`
|
||||||
|
|||||||
Reference in New Issue
Block a user