127 lines
2.7 KiB
Plaintext
127 lines
2.7 KiB
Plaintext
# Install Gateway API CRDs
|
|
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml
|
|
|
|
kubectl get crd | grep gateway
|
|
|
|
kubectl create namespace nginx-gateway
|
|
|
|
kubectl apply --server-side -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v2.4.1/deploy/crds.yaml
|
|
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v2.4.1/deploy/nodeport/deploy.yaml
|
|
|
|
---- Gatway configuration ----
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: Gateway
|
|
metadata:
|
|
name: main-gateway
|
|
namespace: nginx-gateway
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
spec:
|
|
gatewayClassName: nginx
|
|
listeners:
|
|
- allowedRoutes:
|
|
namespaces:
|
|
from: All
|
|
hostname: poc1.italiadatacenter.com
|
|
name: https
|
|
port: 443
|
|
protocol: HTTPS
|
|
tls:
|
|
certificateRefs:
|
|
- group: ""
|
|
kind: Secret
|
|
name: poc1-secret
|
|
mode: Terminate
|
|
- allowedRoutes:
|
|
namespaces:
|
|
from: All
|
|
hostname: poc1.italiadatacenter.com
|
|
name: http
|
|
port: 80
|
|
protocol: HTTP
|
|
|
|
|
|
----- Nodeport service ---
|
|
kubectl apply -f - <<EOF
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: nginx-gateway
|
|
app.kubernetes.io/managed-by: nginx-gateway-nginx
|
|
app.kubernetes.io/name: main-gateway-nginx
|
|
gateway.networking.k8s.io/gateway-name: main-gateway
|
|
name: gateway-nginx-nodeport
|
|
namespace: nginx-gateway
|
|
spec:
|
|
ports:
|
|
- name: port-80
|
|
nodePort: 30864
|
|
port: 80
|
|
protocol: TCP
|
|
targetPort: 80
|
|
- name: port-443
|
|
nodePort: 30874
|
|
port: 443
|
|
protocol: TCP
|
|
targetPort: 443
|
|
selector:
|
|
app.kubernetes.io/instance: nginx-gateway
|
|
app.kubernetes.io/managed-by: nginx-gateway-nginx
|
|
app.kubernetes.io/name: main-gateway-nginx
|
|
gateway.networking.k8s.io/gateway-name: main-gateway
|
|
sessionAffinity: None
|
|
type: NodePort
|
|
EOF
|
|
|
|
----- httproute ---
|
|
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: demo-route
|
|
namespace: demo-apps
|
|
spec:
|
|
hostnames:
|
|
- poc2.italiadatacenter.com
|
|
parentRefs:
|
|
- name: main-gateway
|
|
namespace: nginx-gateway
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
backendRefs:
|
|
- name: app-v1
|
|
port: 80
|
|
|
|
--- work area
|
|
|
|
kubectl edit gateway main-gateway -n nginx-gateway
|
|
|
|
add
|
|
|
|
- allowedRoutes:
|
|
namespaces:
|
|
from: cattle-system
|
|
hostname: k8s.italiadatacenter.com
|
|
name: k8s-https
|
|
port: 443
|
|
protocol: HTTPS
|
|
tls:
|
|
certificateRefs:
|
|
- group: ""
|
|
kind: Secret
|
|
name: k8s-secret
|
|
mode: Terminate
|
|
- allowedRoutes:
|
|
namespaces:
|
|
from: cattle-system
|
|
hostname: k8s.italiadatacenter.com
|
|
name: k8s-http
|
|
port: 80
|
|
protocol: HTTP
|
|
|
|
|