2020-01-14 14:51:24 +00:00
---
title: Hello Minikube
2020-06-01 13:13:52 +00:00
content_type: tutorial
2020-01-14 14:51:24 +00:00
weight: 5
menu:
main:
title: "Jak zacząć?"
weight: 10
post: >
2020-05-14 13:09:14 +00:00
< p > Jesteś gotowy ubrudzić ręce? Zbuduj własny klaster Kubernetes z działającą na nim przykładową aplikacją.< / p >
2020-03-20 10:14:36 +00:00
card:
2020-01-14 14:51:24 +00:00
name: tutorials
weight: 10
---
2020-06-01 13:13:52 +00:00
<!-- overview -->
2020-01-14 14:51:24 +00:00
2020-05-14 13:09:14 +00:00
Ten samouczek pokaże, jak uruchomić przykładową aplikację
2020-01-14 14:51:24 +00:00
na Kubernetes przy użyciu [Minikube ](/docs/setup/learning-environment/minikube ) oraz Katacoda.
Katacoda to darmowe środowisko Kubernetes dostępne bezpośrednio z przeglądarki web.
{{< note > }}
Możesz też skorzystać z tego samouczka, jeśli już zainstalowałeś [Minikube lokalnie ](/docs/tasks/tools/install-minikube/ ).
{{< / note > }}
2020-06-01 13:13:52 +00:00
## {{% heading "objectives" %}}
2020-01-14 14:51:24 +00:00
2020-05-14 13:09:14 +00:00
* Skonfiguruj przykładową aplikację do uruchomienia w Minikube.
2020-01-14 14:51:24 +00:00
* Uruchom aplikację.
* Przejrzyj jej logi.
2020-06-01 13:13:52 +00:00
## {{% heading "prerequisites" %}}
2020-01-14 14:51:24 +00:00
2020-05-14 13:09:14 +00:00
W tym samouczku wykorzystamy obraz kontenera, który korzysta z NGINX, aby wyświetlić z powrotem wszystkie przychodzące zapytania.
2020-01-14 14:51:24 +00:00
2020-06-01 13:13:52 +00:00
<!-- lessoncontent -->
2020-01-14 14:51:24 +00:00
## Stwórz klaster Minikube
2020-03-20 10:14:36 +00:00
1. Kliknij w **Launch Terminal**
2020-01-14 14:51:24 +00:00
{{< kat-button > }}
{{< note > }}Jeśli masz Minikube zainstalowane lokalnie, uruchom `minikube start` .{{< / note > }}
2. Otwórz panel Kubernetes w przeglądarce:
```shell
minikube dashboard
```
3. Tylko w Katacoda: Na górze okienka z terminalem kliknij na znak plus, a następnie wybierz **Select port to view on Host 1** .
4. Tylko w Katacoda: Wpisz `30000` i kliknij **Display Port** .
## Stwórz Deployment
2020-05-14 13:09:14 +00:00
[*Pod* ](/docs/concepts/workloads/pods/pod/ ) w Kubernetes to grupa jednego lub wielu kontenerów
połączonych ze sobą na potrzeby administrowania i dostępu sieci. W tym samouczku Pod
zawiera tylko jeden kontener. [*Deployment* ](/docs/concepts/workloads/controllers/deployment/ )
w Kubernetes monitoruje stan twojego Poda
2020-01-14 14:51:24 +00:00
i restartuje należący do niego kontener, jeśli ten z jakichś powodów przestanie działać.
Użycie Deploymentu to rekomendowana metoda zarządzania tworzeniem i skalowaniem Podów.
1. Użyj polecenia `kubectl create` do stworzenia Deploymentu, który będzie zarządzał Podem. Pod uruchamia kontener
wykorzystując podany obraz Dockera.
```shell
2020-04-27 16:41:53 +00:00
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
2020-01-14 14:51:24 +00:00
```
2. Sprawdź stan Deploymentu:
```shell
kubectl get deployments
```
Wynik powinien wyglądać podobnie do:
```
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 1m
```
3. Sprawdź stan Poda:
```shell
kubectl get pods
```
Wynik powinien wyglądać podobnie do:
```
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
```
4. Obejrzyj zdarzenia na klastrze:
```shell
kubectl get events
```
5. Sprawdź konfigurację `kubectl` :
```shell
kubectl config view
```
2020-03-20 10:14:36 +00:00
2020-01-14 14:51:24 +00:00
{{< note > }}Więcej informacji na temat polecenia `kubectl` znajdziesz w [przeglądzie kubectl ](/docs/user-guide/kubectl-overview/ ).{{< / note > }}
## Stwórz Serwis
2020-05-14 13:09:14 +00:00
Domyślnie Pod jest dostępny tylko poprzez swój wewnętrzny adres IP
wewnątrz klastra Kubernetes. Aby kontener `hello-node` był osiągalny spoza
wirtualnej sieci Kubernetes, musisz najpierw udostępnić Pod
jako [*Serwis* ](/docs/concepts/services-networking/service/ ) Kubernetes.
2020-01-14 14:51:24 +00:00
1. Udostępnij Pod w Internecie przy pomocy polecenia `kubectl expose` :
```shell
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
```
Opcja `--type=LoadBalancer` wskazuje, że chcesz udostępnić swój Serwis
na zewnątrz klastra.
2. Sprawdź Serwis, który właśnie utworzyłeś:
```
kubectl get services
```
Wynik powinien wyglądać podobnie do:
```shell
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 < pending > 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 < none > 443/TCP 23m
```
U dostawców usług chmurowych, którzy obsługują *load balancers* ,
zostanie przydzielony zewnętrzny adres IP na potrzeby serwisu.
2020-05-14 13:09:14 +00:00
W Minikube, typ `LoadBalancer` udostępnia serwis poprzez polecenie
`minikube service` .
2020-01-14 14:51:24 +00:00
3. Uruchom poniższe polecenie:
```shell
minikube service hello-node
```
4. Tylko w Katacoda: Kliknij znak plus, a następnie **Select port to view on Host 1** .
5. Tylko w Katacoda: Wpisz `30369` (sprawdź numer portu obok `8080` w opisie Serwisu) i kliknij **Display Port**
2020-05-14 13:09:14 +00:00
Otworzy sie okno przeglądarki obsługującej twoją aplikację i wyświetli odpowiedź tej aplikacji.
2020-01-14 14:51:24 +00:00
## Włącz dodatki
2020-03-20 10:14:36 +00:00
Minikube ma zestaw wbudowanych {{< glossary_tooltip text = "dodatków" term_id = "addons" > }}, które mogą być włączane, wyłączane i otwierane w lokalnym środowisku Kubernetes.
2020-01-14 14:51:24 +00:00
1. Lista aktualnie obsługiwanych dodatków:
```shell
minikube addons list
```
Wynik powinien wyglądać podobnie do:
```
addon-manager: enabled
dashboard: enabled
default-storageclass: enabled
efk: disabled
freshpod: disabled
gvisor: disabled
helm-tiller: disabled
ingress: disabled
ingress-dns: disabled
logviewer: disabled
metrics-server: disabled
nvidia-driver-installer: disabled
nvidia-gpu-device-plugin: disabled
registry: disabled
registry-creds: disabled
storage-provisioner: enabled
storage-provisioner-gluster: disabled
```
2020-03-20 10:14:36 +00:00
2. Włącz dodatek, na przykład `metrics-server` :
2020-01-14 14:51:24 +00:00
```shell
2020-03-20 10:14:36 +00:00
minikube addons enable metrics-server
2020-01-14 14:51:24 +00:00
```
2020-03-20 10:14:36 +00:00
2020-01-14 14:51:24 +00:00
Wynik powinien wyglądać podobnie do:
```
2020-03-20 10:14:36 +00:00
metrics-server was successfully enabled
2020-01-14 14:51:24 +00:00
```
3. Sprawdź Pod i Serwis, który właśnie stworzyłeś:
```shell
kubectl get pod,svc -n kube-system
```
Wynik powinien wyglądać podobnie do:
```
NAME READY STATUS RESTARTS AGE
pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
2020-03-20 10:14:36 +00:00
pod/metrics-server-67fb648c5 1/1 Running 0 26s
2020-01-14 14:51:24 +00:00
pod/etcd-minikube 1/1 Running 0 34m
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
pod/kube-addon-manager-minikube 1/1 Running 0 34m
pod/kube-apiserver-minikube 1/1 Running 0 34m
pod/kube-controller-manager-minikube 1/1 Running 0 34m
pod/kube-proxy-rnlps 1/1 Running 0 34m
pod/kube-scheduler-minikube 1/1 Running 0 34m
pod/storage-provisioner 1/1 Running 0 34m
2020-05-14 13:09:14 +00:00
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/metrics-server ClusterIP 10.96.241.45 < none > 80/TCP 26s
service/kube-dns ClusterIP 10.96.0.10 < none > 53/UDP,53/TCP 34m
service/monitoring-grafana NodePort 10.99.24.54 < none > 80:30002/TCP 26s
service/monitoring-influxdb ClusterIP 10.111.169.94 < none > 8083/TCP,8086/TCP 26s
2020-01-14 14:51:24 +00:00
```
2020-03-20 10:14:36 +00:00
4. Wyłącz dodatek `metrics-server` :
2020-01-14 14:51:24 +00:00
```shell
2020-03-20 10:14:36 +00:00
minikube addons disable metrics-server
2020-01-14 14:51:24 +00:00
```
2020-03-20 10:14:36 +00:00
2020-01-14 14:51:24 +00:00
Wynik powinien wyglądać podobnie do:
```
2020-05-14 13:09:14 +00:00
metrics-server was successfully disabled
2020-01-14 14:51:24 +00:00
```
## Porządkujemy po sobie
Teraz jest czas na wyczyszczenie zasobów, które utworzyłeś w klastrze:
```shell
kubectl delete service hello-node
kubectl delete deployment hello-node
```
(Opcjonalnie) Zatrzymaj wirtualną maszynę Minikube (VM):
```shell
minikube stop
```
(Opcjonalnie) Skasuj Minikube VM:
```shell
minikube delete
```
2020-06-01 13:13:52 +00:00
## {{% heading "whatsnext" %}}
2020-01-14 14:51:24 +00:00
* Dowiedz się więcej o [obiektach typu Deployment ](/docs/concepts/workloads/controllers/deployment/ ).
2020-03-20 10:14:36 +00:00
* Dowiedz się więcej o [instalowaniu aplikacji ](/docs/tasks/run-application/run-stateless-application-deployment/ ).
2020-01-14 14:51:24 +00:00
* Dowiedz się więcej o [obiektach typu Serwis ](/docs/concepts/services-networking/service/ ).
2020-06-01 13:13:52 +00:00