This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
система_kubernetes [2026/02/15 07:43] val [kompose] |
система_kubernetes [2026/03/05 15:47] (current) val [Ingress] |
||
|---|---|---|---|
| Line 130: | Line 130: | ||
| ===== Установка minikube ===== | ===== Установка minikube ===== | ||
| + | * [[https://github.com/kubernetes/minikube/tags]] | ||
| * [[https://minikube.sigs.k8s.io/docs/start/|Documentation/Get Started/minikube start]] | * [[https://minikube.sigs.k8s.io/docs/start/|Documentation/Get Started/minikube start]] | ||
| * [[https://stackoverflow.com/questions/42564058/how-can-i-use-local-docker-images-with-minikube|How can I use local Docker images with Minikube?]] | * [[https://stackoverflow.com/questions/42564058/how-can-i-use-local-docker-images-with-minikube|How can I use local Docker images with Minikube?]] | ||
| Line 136: | Line 137: | ||
| root@server:~# apt install -y wget | root@server:~# apt install -y wget | ||
| - | root@server:~# wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 | + | root@server:~# wget https://storage.googleapis.com/minikube/releases/v1.37.0/minikube-linux-amd64 |
| root@server:~# mv minikube-linux-amd64 /usr/local/bin/minikube | root@server:~# mv minikube-linux-amd64 /usr/local/bin/minikube | ||
| Line 602: | Line 603: | ||
| root@cf764ca3b291:/kubespray# ansible all -m ping -i /inventory/inventory.ini | root@cf764ca3b291:/kubespray# ansible all -m ping -i /inventory/inventory.ini | ||
| </code> | </code> | ||
| - | * Может потребоваться [[#Настройка registry-mirrors для Kubespray]] | ||
| <code> | <code> | ||
| - | root@cf764ca3b291:/kubespray# cp -rv inventory/sample/group_vars/ /inventory/ | + | root@cf764ca3b291:/kubespray# cp -rv inventory/sample/group_vars/ /inventory/ |
| </code> | </code> | ||
| + | * Может потребоваться [[#Настройка registry-mirrors для Kubespray]] | ||
| <code> | <code> | ||
| root@cf764ca3b291:/kubespray# time ansible-playbook -i /inventory/inventory.ini cluster.yml | root@cf764ca3b291:/kubespray# time ansible-playbook -i /inventory/inventory.ini cluster.yml | ||
| Line 805: | Line 806: | ||
| # image: server.corpX.un:5000/student/webd:ver1.N | # image: server.corpX.un:5000/student/webd:ver1.N | ||
| # image: httpd | # image: httpd | ||
| + | # image: brndnmtthws/nginx-echo-headers | ||
| # args: ["gunicorn", "app:app", "--bind", "0.0.0.0:8000", "-k", "uvicorn.workers.UvicornWorker"] | # args: ["gunicorn", "app:app", "--bind", "0.0.0.0:8000", "-k", "uvicorn.workers.UvicornWorker"] | ||
| Line 1218: | Line 1220: | ||
| </code> | </code> | ||
| - | === traefik === | + | === ingress-traefik-controller === |
| - | * https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/ | + | * [[#Traefik]] (providers.kubernetesGateway.enabled: false) |
| - | + | ||
| - | <code> | + | |
| - | kube1:~/traefik# helm show values traefik --repo https://traefik.github.io/charts --version 39.0.1 | tee values.yaml.orig | + | |
| - | + | ||
| - | kube1:~/traefik# cat values.yaml | + | |
| - | </code><code> | + | |
| - | service: | + | |
| - | spec: | + | |
| - | loadBalancerIP: "192.168.13.64" | + | |
| - | </code><code> | + | |
| - | kube1:~/traefik# helm template traefik -f values.yaml --repo https://traefik.github.io/charts -n traefik --version 39.0.1 | + | |
| - | + | ||
| - | kube1:~/traefik# helm install traefik traefik -f values.yaml --repo https://traefik.github.io/charts -n traefik --version 39.0.1 --create-namespace | + | |
| - | </code> | + | |
| === ingress example === | === ingress example === | ||
| Line 1324: | Line 1312: | ||
| </code> | </code> | ||
| + | ==== Gateway API ==== | ||
| + | |||
| + | * https://gateway-api.sigs.k8s.io/guides/getting-started/ | ||
| + | |||
| + | <code> | ||
| + | kube1:~# kubectl get gatewayclasses | ||
| + | </code> | ||
| + | |||
| + | === Traefik === | ||
| + | |||
| + | * https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/ | ||
| + | |||
| + | <code> | ||
| + | kube1:~/traefik# helm show values traefik --repo https://traefik.github.io/charts --version 39.0.1 | tee values.yaml.orig | ||
| + | |||
| + | kube1:~/traefik# cat values.yaml | ||
| + | </code><code> | ||
| + | service: | ||
| + | spec: | ||
| + | loadBalancerIP: "192.168.X.64" | ||
| + | ingressRoute: | ||
| + | dashboard: | ||
| + | enabled: true | ||
| + | matchRule: Host(`dashboard-traefik.corpX.un`) | ||
| + | entryPoints: | ||
| + | - web | ||
| + | providers: | ||
| + | kubernetesGateway: | ||
| + | enabled: true | ||
| + | #gateway: | ||
| + | # listeners: | ||
| + | # web: | ||
| + | # namespacePolicy: | ||
| + | # from: All | ||
| + | </code><code> | ||
| + | kube1:~/traefik# helm template traefik -f values.yaml --repo https://traefik.github.io/charts -n traefik --version 39.0.1 | ||
| + | |||
| + | kube1:~/traefik# helm install traefik traefik -f values.yaml --repo https://traefik.github.io/charts -n traefik --version 39.0.1 --create-namespace | ||
| + | </code><code> | ||
| + | kube1:~/traefik# kubectl get ingressclasses | ||
| + | |||
| + | kube1:~/webd-k8s# ###cat my-ingressroute.yaml | ||
| + | </code><code> | ||
| + | apiVersion: traefik.io/v1alpha1 | ||
| + | kind: IngressRoute | ||
| + | metadata: | ||
| + | name: my-ingressroute | ||
| + | spec: | ||
| + | entryPoints: | ||
| + | - web | ||
| + | routes: | ||
| + | - match: Host(`htwebd.corpX.un`) | ||
| + | kind: Rule | ||
| + | services: | ||
| + | - name: my-webd | ||
| + | port: 80 | ||
| + | </code> | ||
| + | |||
| + | === Envoy Gateway === | ||
| + | |||
| + | * [[https://gateway.envoyproxy.io/latest/install/install-helm/]] | ||
| + | * [[https://hub.docker.com/r/envoyproxy/gateway-helm/tags]] | ||
| + | |||
| + | <code> | ||
| + | kube1:~/envoygateway# helm show values oci://docker.io/envoyproxy/gateway-helm --version v1.6.4 | ||
| + | | ||
| + | kube1:~/envoygateway# helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.6.4 -n envoy-gateway-system --create-namespace | ||
| + | |||
| + | kube1:~/envoygateway# cat envoyproxy.yaml | ||
| + | apiVersion: gateway.envoyproxy.io/v1alpha1 | ||
| + | kind: EnvoyProxy | ||
| + | metadata: | ||
| + | name: custom-envoy-proxy | ||
| + | namespace: envoy-gateway-system | ||
| + | spec: | ||
| + | provider: | ||
| + | type: Kubernetes | ||
| + | kubernetes: | ||
| + | envoyService: | ||
| + | type: LoadBalancer | ||
| + | annotations: | ||
| + | metallb.universe.tf/loadBalancerIPs: "192.168.X.66" | ||
| + | | ||
| + | kube1:~/envoygateway# cat gatewayclass.yaml | ||
| + | apiVersion: gateway.networking.k8s.io/v1 | ||
| + | kind: GatewayClass | ||
| + | metadata: | ||
| + | name: eg | ||
| + | spec: | ||
| + | controllerName: gateway.envoyproxy.io/gatewayclass-controller | ||
| + | parametersRef: | ||
| + | group: gateway.envoyproxy.io | ||
| + | kind: EnvoyProxy | ||
| + | name: custom-envoy-proxy | ||
| + | namespace: envoy-gateway-system | ||
| + | </code> | ||
| ==== Volumes ==== | ==== Volumes ==== | ||