W tym artykule przeprowadzę Cię przez kroki instalacji i konfiguracji kontrolera dostępu nginx.
Oto samouczek wideo; kontynuuj czytanie, aby zobaczyć listę pisemnych instrukcji. VIDEO
Ćwiczenia do wykonania:# zainstaluj k3s bezpiecznie bez traefik i servicelb zainstaluj nginx jako kontroler dostępu w k3s Sprawdź status węzłów i podów Utwórz load balancer, aby udostępnić porty nginx ingress controller Utwórz przestrzeń nazw test Utwórz przykład do testowania Przetestuj konfigurację Skopiuj plik konfiguracyjny k3s Zmień właściciela na użytkownika dla pliku konfiguracyjnego k3s Zainstaluj k9s Uruchom k9s Wyjaśnienie użycia k9s Sprawdź usługi k3s Sprawdź przykładową aplikację testową Zainstaluj k3s bezpiecznie bez traefik i servicelb# 1
sudo curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC = "--disable traefik,servicelb" K3S_KUBECONFIG_MODE = "644" sh -
Kopiuj
Dodaj wpisy cgroup do pliku cmdline.txt# 1
sudo vim /boot/cmdline.txt
Kopiuj
Dodaj na końcu linii rozpoczynającej się od console= poniższe wpisy: 1
cgroup_memory = 1 cgroup_enable = memory
Kopiuj
Uruchom ponownie serwer# Co to jest kontroler dostępu nginx?# Zobacz dokumentację: Kontroler dostępu nginx
Zainstaluj nginx jako kontroler dostępu w k3s# 1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/baremetal/deploy.yaml
Kopiuj
Zobacz dokumentację: Przewodnik instalacji kontrolera dostępu nginx
Sprawdź status węzłów# 1
kubectl get nodes
Kopiuj
Sprawdź pody# 1
kubectl get pods -A
Kopiuj
Utwórz równoważnik obciążenia, aby udostępnić porty kontrolera dostępu nginx# 1
vim ingress-controller-load-balancer.yaml
Kopiuj
Wprowadź poniższą zawartość do pliku 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
---
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx-controller-loadbalancer
namespace: ingress-nginx
spec:
selector:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
type: LoadBalancer
Kopiuj
Utwórz nginx ingresss controller load balancer# 1
kubectl apply -f ingress-controller-load-balancer.yaml
Kopiuj
Utwórz przestrzeń nazw test# 1
kubectl create namespace test
Kopiuj
Utwórz przykład do testowania# Poniższy przykład wykorzystuje kontroler dostępu nginx do ustanowienia wdrożenia i jego ujawnienia. Ponieważ domyślnie będzie używany SSL i wywoła to błąd dla nieistniejącego certyfikatu, ważne jest, aby zwrócić uwagę na adnotację nginx.ingress.kubernetes.io/ssl-redirect: “false”.
Kolejnym ważnym czynnikiem jest używana nazwa domeny. Zamierzam użyć nazwy domeny test.localhost, ale oczywiście powinieneś ją zmienić na własną i skierować do węzła twojej instancji k3s.
Utwórz plik o nazwie my-example.yaml i użyj poniższej składni, aby zaimplementować ten przykład do testowania Ingress:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
apiVersion : apps/v1
kind : Deployment
metadata :
name : test-nginx-app
namespace : test
spec :
selector :
matchLabels :
name : test-nginx-backend
template :
metadata :
labels :
name : test-nginx-backend
spec :
containers :
- name : backend
image : docker.io/nginx:alpine
imagePullPolicy : Always
ports :
- containerPort : 80
---
apiVersion : v1
kind : Service
metadata :
name : test-nginx-service
namespace : test
spec :
ports :
- name : http
port : 80
protocol : TCP
targetPort : 80
selector :
name : test-nginx-backend
---
apiVersion : networking.k8s.io/v1
kind : Ingress
metadata :
name : test-nginx-ingress
namespace : test
annotations :
nginx.ingress.kubernetes.io/ssl-redirect : "false"
spec :
rules :
- host : test.localhost
http :
paths :
- path : /
pathType : Prefix
backend :
service :
name : test-nginx-service
port :
number : 80
Kopiuj
Zastosuj przykład do testowania# 1
kubectl apply -f my-example.yaml --namespace test
Kopiuj
Przetestuj konfigurację# 1
2
3
4
5
kubectl cluster-info
kubectl get nodes
kubectl get pods -A
kubectl config get-contexts
kubectl get all --all-namespaces
Kopiuj
Skopiuj plik konfiguracyjny k3s# 1
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
Kopiuj
Zmień właściciela na użytkownika dla pliku konfiguracyjnego k3s
1
sudo chown -R $USER :$USER /home/$USER
Kopiuj
Zainstaluj k9s# Aby komunikować się z twoimi klastrami Kubernetes, K9s oferuje interfejs użytkownika terminalu. Celem tego projektu jest ułatwienie użytkowania, monitorowania i administrowania twoimi aplikacjami w terenie. K9s ciągle skanuje Kubernetes w poszukiwaniu zmian i oferuje dodatkowe polecenia do interakcji z wybranymi zasobami.
1
curl -sS https://webinstall.dev/k9s | bash
Kopiuj
Uruchom k9s# Zakończ, naciskając ctrl+c
Użycie k9s# 1
2
3
k9s info
k9s help
k9s -A
Kopiuj
Sprawdź usługi k3s# 1
kubectl get svc --all-namespaces -o wide
Kopiuj
Sprawdź przykładową aplikację testową# 1
curl http://10.43.13.55
Kopiuj
Comments