VPC+NLB+ALB+DDoS+DNS
April 20, 2023
ALB ingress
Пример с одним приложением и одним сервисом.
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: cam-deploy-nginx
namespace: default
labels:
app: app22
spec:
replicas: 1
selector:
matchLabels:
app: app22
template:
metadata:
labels:
app: app22
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: cam-mynginx22
namespace: default
spec:
type: NodePort
selector:
app: app22
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
nodePort: 30081
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cam-mynginx22
namespace: default
annotations:
ingress.alb.yc.io/subnets: e9b16nenl5a52h6o9djb
ingress.alb.yc.io/external-ipv4-address: 51.250.91.99
ingress.alb.yc.io/group-name: infra-alb
ingress.alb.yc.io/security-groups: enpauibqifvmvss6balo
spec:
rules:
- host: testest.cameda.ga
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: cam-mynginx22
port:
number: 80
EOFПример с несколькими приложениями.
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
namespace: default
labels:
app: app1
spec:
replicas: 1
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- name: http
containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app2
namespace: default
labels:
app: app2
spec:
replicas: 1
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
containers:
- name: httpbin
image: kennethreitz/httpbin:latest
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: app1
namespace: default
spec:
type: NodePort
selector:
app: app1
ports:
- name: http
port: 8080
targetPort: 80
protocol: TCP
nodePort: 30080
---
apiVersion: v1
kind: Service
metadata:
name: app2
namespace: default
spec:
type: NodePort
selector:
app: app2
ports:
- name: http
port: 8081
targetPort: 80
protocol: TCP
nodePort: 30081
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: httpbin
namespace: default
annotations:
ingress.alb.yc.io/subnets: e9b16nenl5a52h6o9djb
ingress.alb.yc.io/external-ipv4-address: 51.250.15.214
ingress.alb.yc.io/group-name: infra-alb
ingress.alb.yc.io/security-groups: enpauibqifvmvss6balo
ingress.alb.yc.io/upgrade-types: WebSocket
ingress.alb.yc.io/idle-timeout: 5m
spec:
rules:
- host: mac.infra.cameda.ga
http:
paths:
- path: /app1
pathType: Prefix
backend:
service:
name: app1
port:
number: 8080
- path: /app2
pathType: Prefix
backend:
service:
name: app2
port:
number: 8081Полезные ссылки
Список аннотаций: https://cloud.yandex.ru/docs/application-load-balancer/k8s-ref/ingress#annotations
April 20, 2023, 12:17
0 views
0 reposts