K8s/Nginx/Ingress
Namespace » Academia
|
Namespace » Academia | ||
|---|---|---|
cat << EXE | sudo bash
ufw allow 9000:9010/tcp
ufw allow 3000/tcp
ufw status numbered
EXE
|
cat << EXE | sudo bash
ufw delete allow 9000:9010/tcp
ufw delete allow 3000/tcp
ufw status numbered
EXE
|
kubectl config get-contexts
kubectl config view
kubectl get ns|grep academia
kubectl delete namespace academia
kubectl create namespace academia
|
Namespace » Academia » Ingress » Academia
|
Namespace » Academia » Ingress » Academia |
|---|
cat <<'YML'| kubectl apply -n academia -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: academia
namespace: academia
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/name: academia
app.kubernetes.io/instance: academia
app.kubernetes.io/managed-by: kubectl
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: '0'
spec:
ingressClassName: nginx
rules:
- host: academia.chorke.org.local
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: nginx
port:
number: 80
YML
|
Namespace » Academia » Service » Academia
|
Namespace » Academia » Service » Academia |
|---|
cat <<'YML'|kubectl apply -n academia -f -
---
apiVersion: v1
kind: Service
metadata:
name: academia
namespace: academia
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/name: academia
app.kubernetes.io/instance: academia
app.kubernetes.io/managed-by: kubectl
spec:
type: ExternalName
externalName: host.minikube.internal
YML
|
Namespace » Academia » Service » Nginx
|
Namespace » Academia » Service » Nginx |
|---|
cat <<'YML'| kubectl apply -n academia -f -
---
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: academia
labels:
app.kubernetes.io/name: nginx
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: academia
app.kubernetes.io/managed-by: kubectl
spec:
type: ClusterIP
ports:
- name: http-nginx
targetPort: 80
protocol: TCP
port: 80
selector:
app: nginx
YML
|
Namespace » Academia » ConfigMap » Nginx
|
Namespace » Academia » ConfigMap » Nginx |
|---|
cat <<'CFG'| kubectl -n academia create configmap nginx --from-file=default.conf=/dev/stdin
map $sent_http_content_type $expires {
default off;
text/html epoch;
text/css max;
application/javascript max;
~image/ max;
}
server {
listen 80;
listen [::]:80;
server_name academia.chorke.org.local academia.chorke.org.local;
gzip on;
gzip_vary on;
gzip_comp_level 3;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_disable "msie6";
gzip_types text/css text/xml application/x-javascript application/atom+xml text/mathml text/plain text/vnd.sun.j2me.app-descriptor text/vnd.wap.wml text/x-component;
client_max_body_size 25M;
keepalive_timeout 10;
expires $expires;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_redirect off;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 2048 8k;
location /api/policy/rest/ {
proxy_pass http://academia:9002/;
}
location /api/quote/rest/ {
proxy_pass http://academia:9001/;
}
location /api/audit/rest/ {
proxy_pass http://academia:9003/;
}
location /api/rate/rest/ {
proxy_pass http://academia:9004/;
}
location /api/tds/rest/ {
proxy_pass http://academia:9000/;
}
location / {
proxy_pass http://academia:3000/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
CFG
|
Namespace » Academia » Deployment » Nginx
|
Namespace » Academia » Deployment » Nginx |
|---|
cat <<'YML'| kubectl apply -n academia -f -
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: academia
labels:
app: nginx
app.kubernetes.io/name: nginx
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: academia
app.kubernetes.io/managed-by: kubectl
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27-alpine-slim
ports:
- name: http-nginx
containerPort: 80
protocol: TCP
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
memory: 128Mi
cpu: 100m
volumeMounts:
- mountPath: /etc/nginx/conf.d/default.conf
subPath: default.conf
name: default-conf
volumes:
- name: default-conf
configMap:
name: nginx
items:
- key: default.conf
path: default.conf
YML
|
Namespace » Kube-System » ConfigMap » CoreDNS
|
Namespace » Kube-System » ConfigMap » CoreDNS |
|---|
Namespace » Academia » Clean-up
|
Namespace » Academia » Clean-up |
|---|
kubectl -n academia delete deploy nginx
kubectl -n academia delete service nginx
kubectl -n academia delete configmap nginx
kubectl -n academia delete service academia
kubectl -n academia delete ingress academia
kubectl delete namespace academia
|
Namespace » Academia » Env.js
|
Namespace » Academia » Env.js |
|---|
let token = localStorage.getItem('user') != null ? JSON.parse(localStorage.getItem('user')).token : ''
const policyUrl = 'http://academia.chorke.org.local/api/policy/rest';
const auditUrl = 'http://academia.chorke.org.local/api/audit/rest';
const quoteUrl = 'http://academia.chorke.org.local/api/quote/rest';
const rateUrl = 'http://academia.chorke.org.local/api/rate/rest';
const url = 'http://academia.chorke.org.local/api/tds/rest';
const siteKey = '6LfAm6MpBBBBBNf1A6fxnsKeH6UQ8lrKw7LarDXa';
const isEnabledReCaptcha = false;
export const env = {
apiURL : url,
apiVersion : `${url}`,
quotationUrl : quoteUrl,
policyUrl : policyUrl,
productsUrl : rateUrl,
auditUrl,
token,
siteKey,
isEnabledReCaptcha
};
|