K8s/Nginx/Ingress: Difference between revisions
Jump to navigation
Jump to search
| (7 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
==Namespace » Academia== | ==Namespace » Academia== | ||
{|class='wikitable mw-collapsible' | |||
!scope='col' colspan='2' style='width:1100px'| | |||
Namespace » Academia | |||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight lang="bash"> | |||
cat << EXE | sudo bash | |||
ufw allow from 192.168.49.2/32 to any port 9000:9010 proto tcp | |||
ufw allow from 192.168.49.2/32 to any port 3000 proto tcp | |||
ufw status numbered | |||
EXE | |||
</syntaxhighlight> | |||
---- | |||
<syntaxhighlight lang="bash"> | |||
cat << EXE | sudo bash | |||
ufw delete allow from 192.168.49.2/32 to any port 9000:9010 proto tcp | |||
ufw delete allow from 192.168.49.2/32 to any port 3000 proto tcp | |||
ufw status numbered | |||
EXE | |||
</syntaxhighlight> | |||
|- | |||
|valign='top' style='width:544px'| | |||
<syntaxhighlight lang="bash"> | |||
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml | |||
kubectl config get-contexts | |||
kubectl config view | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl get ns|grep academia | kubectl get ns|grep academia | ||
| Line 5: | Line 34: | ||
kubectl create namespace academia | kubectl create namespace academia | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » Ingress » Academia== | ==Namespace » Academia » Ingress » Academia== | ||
{|class='wikitable mw-collapsible' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Ingress » Academia | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat <<'YML'| kubectl apply -n academia -f - | cat <<'YML'| kubectl apply -n academia -f - | ||
| Line 37: | Line 72: | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » Service » Academia== | ==Namespace » Academia » Service » Academia== | ||
{|class='wikitable mw-collapsible mw-collapsed' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Service » Academia | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat <<'YML'|kubectl apply -n academia -f - | cat <<'YML'|kubectl apply -n academia -f - | ||
| Line 57: | Line 98: | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » Service » Nginx== | ==Namespace » Academia » Service » Nginx== | ||
{|class='wikitable mw-collapsible mw-collapsed' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Service » Nginx | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat <<'YML'| kubectl apply -n academia -f - | cat <<'YML'| kubectl apply -n academia -f - | ||
| Line 83: | Line 130: | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » ConfigMap » Nginx== | ==Namespace » Academia » ConfigMap » Nginx== | ||
{|class='wikitable mw-collapsible mw-collapsed' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » ConfigMap » Nginx | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="nginx" line> | <syntaxhighlight lang="nginx" line> | ||
cat <<'CFG'| kubectl -n academia create configmap nginx --from-file=default.conf=/dev/stdin | cat <<'CFG'| kubectl -n academia create configmap nginx --from-file=default.conf=/dev/stdin | ||
| Line 152: | Line 205: | ||
CFG | CFG | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » Deployment » Nginx== | ==Namespace » Academia » Deployment » Nginx== | ||
{|class='wikitable mw-collapsible' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Deployment » Nginx | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat <<'YML'| kubectl apply -n academia -f - | cat <<'YML'| kubectl apply -n academia -f - | ||
| Line 205: | Line 264: | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Kube-System » ConfigMap » CoreDNS== | ==Namespace » Kube-System » ConfigMap » CoreDNS== | ||
{|class='wikitable mw-collapsible' | |||
!scope='col' style='width:1100px'| | |||
- | Namespace » Kube-System » ConfigMap » CoreDNS | ||
|- | |||
|valign='top'| | |||
[[K8s/Ingress#CoreDNS|Skipped » Find More » 👈]] | |||
|} | |||
==Namespace » Academia » Clean-up == | ==Namespace » Academia » Clean-up == | ||
{|class='wikitable mw-collapsible mw-collapsed' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Clean-up | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl -n academia delete deploy nginx | kubectl -n academia delete deploy nginx | ||
| Line 298: | Line 290: | ||
kubectl delete namespace academia | kubectl delete namespace academia | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Namespace » Academia » Env.js == | ==Namespace » Academia » Env.js == | ||
{|class='wikitable mw-collapsible' | |||
!scope='col' style='width:1100px'| | |||
Namespace » Academia » Env.js | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="js"> | <syntaxhighlight lang="js"> | ||
let token = localStorage.getItem('user') != null ? JSON.parse(localStorage.getItem('user')).token : '' | let token = localStorage.getItem('user') != null ? JSON.parse(localStorage.getItem('user')).token : '' | ||
| Line 322: | Line 320: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==References== | ==References== | ||
Latest revision as of 00:46, 12 July 2025
Namespace » Academia
|
Namespace » Academia | |
|---|---|
cat << EXE | sudo bash
ufw allow from 192.168.49.2/32 to any port 9000:9010 proto tcp
ufw allow from 192.168.49.2/32 to any port 3000 proto tcp
ufw status numbered
EXE
cat << EXE | sudo bash
ufw delete allow from 192.168.49.2/32 to any port 9000:9010 proto tcp
ufw delete allow from 192.168.49.2/32 to any port 3000 proto tcp
ufw status numbered
EXE
| |
export KUBECONFIG=${HOME}/.kube/shahed-ab-kubeconfig.yaml
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
};
|