K8s/Ingress: Difference between revisions
Jump to navigation
Jump to search
| (30 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
==CoreDNS== | |||
{|class='wikitable mw-collapsible' | |||
!scope='col' style='width:600px'| | |||
'''Kube-System » ConfigMap » CoreDNS''' | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | |||
cat <<'YML'|kubectl apply -n kube-system -f - | |||
--- | |||
apiVersion: v1 | |||
kind: ConfigMap | |||
metadata: | |||
name: coredns | |||
namespace: kube-system | |||
data: | |||
Corefile: | | |||
.:53 { | |||
log | |||
errors | |||
health { | |||
lameduck 5s | |||
} | |||
ready | |||
kubernetes cluster.local in-addr.arpa ip6.arpa { | |||
pods insecure | |||
fallthrough in-addr.arpa ip6.arpa | |||
ttl 30 | |||
} | |||
prometheus :9153 | |||
hosts { | |||
192.168.49.1 host.minikube.internal | |||
fallthrough | |||
} | |||
forward . /etc/resolv.conf { | |||
max_concurrent 1000 | |||
} | |||
cache 30 { | |||
disable success cluster.local | |||
disable denial cluster.local | |||
} | |||
loop | |||
reload | |||
loadbalance | |||
} | |||
chorke.com:53 { | |||
errors | |||
cache 30 | |||
forward . 1.1.1.1 8.8.8.8 | |||
} | |||
chorke.org:53 { | |||
errors | |||
cache 30 | |||
forward . 1.1.1.1 8.8.8.8 | |||
} | |||
shahed.biz:53 { | |||
errors | |||
cache 30 | |||
forward . 1.1.1.1 8.8.8.8 | |||
} | |||
group.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
biz.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
com.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
k8s.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
org.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
bd.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
io.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
my.local:53 { | |||
errors | |||
cache 30 | |||
forward . 192.168.49.2 | |||
} | |||
YML | |||
kubectl -n kube-system rollout restart deploy/coredns | |||
</syntaxhighlight> | |||
|} | |||
==External== | ==External== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl get ns|grep external | kubectl get ns|grep external | ||
kubectl delete namespace external | kubectl delete namespace external | ||
kubectl create namespace external | kubectl create namespace external | ||
| Line 8: | Line 113: | ||
==Internal== | ==Internal== | ||
{| | {| | ||
| | |valign='top'| | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl get ns|grep internal | kubectl get ns|grep internal | ||
kubectl delete namespace internal | kubectl delete namespace internal | ||
kubectl create namespace internal | kubectl create namespace internal | ||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight lang="bash"> | |||
kubectl get ns|grep academia | |||
kubectl delete namespace academia | |||
kubectl create namespace academia | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight lang="bash"> | |||
kubectl get ns|grep agronomy | |||
kubectl delete namespace agronomy | |||
kubectl create namespace agronomy | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 19: | Line 138: | ||
---- | ---- | ||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat << YML|kubectl apply -n internal -f - | cat << YML|kubectl apply -n internal -f - | ||
| Line 26: | Line 145: | ||
kind: Service | kind: Service | ||
metadata: | metadata: | ||
name: | name: host | ||
namespace: internal | namespace: internal | ||
labels: | |||
app.kubernetes.io/name: host | |||
app.kubernetes.io/version: 1.0.0 | |||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | |||
spec: | |||
type: ExternalName | |||
externalName: host.minikube.internal | |||
YML | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | |||
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 | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml"> | |||
cat << YML|kubectl apply -n agronomy -f - | |||
--- | |||
apiVersion: v1 | |||
kind: Service | |||
metadata: | |||
name: agronomy | |||
namespace: agronomy | |||
labels: | labels: | ||
app.kubernetes.io/version: 1.0.0 | app.kubernetes.io/version: 1.0.0 | ||
app.kubernetes.io/name: agronomy | |||
app.kubernetes.io/instance: agronomy | |||
app.kubernetes.io/managed-by: kubectl | app.kubernetes.io/managed-by: kubectl | ||
spec: | spec: | ||
type: ExternalName | type: ExternalName | ||
| Line 44: | Line 203: | ||
|- | |- | ||
|valign='top'| | |valign='top'| | ||
===Internal » HAProxy=== | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat << YML | kubectl apply -n internal -f - | cat << YML | kubectl apply -n internal -f - | ||
| Line 50: | Line 210: | ||
kind: Ingress | kind: Ingress | ||
metadata: | metadata: | ||
name: | name: haproxy | ||
namespace: internal | namespace: internal | ||
labels: | labels: | ||
app.kubernetes.io/name: host | |||
app.kubernetes.io/version: 1.0.0 | app.kubernetes.io/version: 1.0.0 | ||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | app.kubernetes.io/managed-by: kubectl | ||
spec: | spec: | ||
ingressClassName: nginx | ingressClassName: nginx | ||
| Line 67: | Line 227: | ||
backend: | backend: | ||
service: | service: | ||
name: | name: host | ||
port: | port: | ||
number: | number: 80 | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |valign='top'| | ||
===Internal » Apache=== | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
cat << YML | kubectl apply -n internal -f - | cat << YML | kubectl apply -n internal -f - | ||
| Line 80: | Line 241: | ||
kind: Ingress | kind: Ingress | ||
metadata: | metadata: | ||
name: | name: apache | ||
namespace: internal | namespace: internal | ||
labels: | labels: | ||
app.kubernetes.io/name: host | |||
app.kubernetes.io/version: 1.0.0 | app.kubernetes.io/version: 1.0.0 | ||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | app.kubernetes.io/managed-by: kubectl | ||
spec: | spec: | ||
ingressClassName: nginx | ingressClassName: nginx | ||
rules: | rules: | ||
- host: " | - host: "apache.host.k8s.local" | ||
http: | http: | ||
paths: | paths: | ||
| Line 97: | Line 258: | ||
backend: | backend: | ||
service: | service: | ||
name: | name: host | ||
port: | port: | ||
number: | number: 2013 | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |valign='top'| | ||
<syntaxhighlight lang="yaml | ===Internal » Nginx=== | ||
<syntaxhighlight lang="yaml" line> | |||
cat << YML | kubectl apply -n internal -f - | cat << YML | kubectl apply -n internal -f - | ||
--- | --- | ||
| Line 110: | Line 272: | ||
kind: Ingress | kind: Ingress | ||
metadata: | metadata: | ||
name: | name: nginx | ||
namespace: internal | namespace: internal | ||
labels: | labels: | ||
app.kubernetes.io/name: | app.kubernetes.io/name: host | ||
app.kubernetes.io/instance: | app.kubernetes.io/version: 1.0.0 | ||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | |||
spec: | spec: | ||
ingressClassName: nginx | ingressClassName: nginx | ||
rules: | rules: | ||
- host: " | - host: "nginx.host.k8s.local" | ||
http: | http: | ||
paths: | paths: | ||
- path: / | - path: / | ||
pathType: | pathType: ImplementationSpecific | ||
backend: | backend: | ||
service: | service: | ||
name: | name: host | ||
port: | port: | ||
number: | number: 2015 | ||
YML | YML | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 138: | Line 300: | ||
|- | |- | ||
|valign='top'| | |valign='top'| | ||
<syntaxhighlight lang="yaml" highlight="14,18,28" | ===Internal » GitLab=== | ||
<syntaxhighlight lang="yaml"> | |||
cat << YML | kubectl apply -n internal -f - | |||
--- | |||
apiVersion: networking.k8s.io/v1 | |||
kind: Ingress | |||
metadata: | |||
name: gitlab | |||
namespace: internal | |||
labels: | |||
app.kubernetes.io/name: host | |||
app.kubernetes.io/version: 1.0.0 | |||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | |||
spec: | |||
ingressClassName: nginx | |||
rules: | |||
- host: "gitlab.host.k8s.local" | |||
http: | |||
paths: | |||
- path: / | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: host | |||
port: | |||
number: 1080 | |||
YML | |||
</syntaxhighlight> | |||
|valign='top'| | |||
===Internal » MinIO=== | |||
<syntaxhighlight lang="yaml" highlight="14,18,28"> | |||
cat << YML | kubectl apply -n internal -f - | cat << YML | kubectl apply -n internal -f - | ||
--- | --- | ||
| Line 147: | Line 341: | ||
namespace: internal | namespace: internal | ||
labels: | labels: | ||
app.kubernetes.io/name: host | |||
app.kubernetes.io/version: 1.0.0 | app.kubernetes.io/version: 1.0.0 | ||
app.kubernetes.io/instance: host | |||
app.kubernetes.io/managed-by: kubectl | app.kubernetes.io/managed-by: kubectl | ||
annotations: | annotations: | ||
nginx.ingress.kubernetes.io/proxy-body-size: '0' | nginx.ingress.kubernetes.io/proxy-body-size: '0' | ||
| Line 163: | Line 357: | ||
backend: | backend: | ||
service: | service: | ||
name: | name: host | ||
port: | port: | ||
number: 9801 | number: 9801 | ||
| Line 173: | Line 367: | ||
backend: | backend: | ||
service: | service: | ||
name: | name: host | ||
port: | port: | ||
number: 9800 | number: 9800 | ||
| Line 181: | Line 375: | ||
|valign='top'| | |valign='top'| | ||
| | ===Agronomy » Portal=== | ||
<syntaxhighlight lang="yaml" highlight="14,18" line> | |||
cat << YML | kubectl apply -n agronomy -f - | |||
--- | |||
apiVersion: networking.k8s.io/v1 | |||
kind: Ingress | |||
metadata: | |||
name: agronomy | |||
namespace: agronomy | |||
labels: | |||
app.kubernetes.io/version: 1.0.0 | |||
app.kubernetes.io/name: agronomy | |||
app.kubernetes.io/instance: agronomy | |||
app.kubernetes.io/managed-by: kubectl | |||
annotations: | |||
nginx.ingress.kubernetes.io/proxy-body-size: '0' | |||
spec: | |||
ingressClassName: nginx | |||
rules: | |||
- host: "agronomy.chorke.local" | |||
http: | |||
paths: | |||
- path: / | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: agronomy | |||
port: | |||
number: 3000 | |||
- path: /services/flair/ | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: agronomy | |||
port: | |||
number: 9004 | |||
- path: /services/quote/ | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: agronomy | |||
port: | |||
number: 9003 | |||
- path: /services/audit/ | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: agronomy | |||
port: | |||
number: 9002 | |||
- path: /services/users/ | |||
pathType: ImplementationSpecific | |||
backend: | |||
service: | |||
name: agronomy | |||
port: | |||
number: 9000 | |||
YML | |||
</syntaxhighlight> | |||
|} | |} | ||
| Line 189: | Line 441: | ||
|valign='top'| | |valign='top'| | ||
===ConfigMap » tcp-services=== | ===ConfigMap » tcp-services=== | ||
<syntaxhighlight lang="yaml" highlight="6,13-14" | <syntaxhighlight lang="yaml" highlight="6,13-14"> | ||
cat << YML | kubectl apply -n ingress-nginx -f - | cat << YML | kubectl apply -n ingress-nginx -f - | ||
--- | --- | ||
| Line 223: | Line 475: | ||
app.kubernetes.io/name: ingress-nginx | app.kubernetes.io/name: ingress-nginx | ||
data: | data: | ||
1194: "internal/ | 1194: "internal/host:1194" | ||
53: "kube-system/kube-dns:53" | 53: "kube-system/kube-dns:53" | ||
YML | YML | ||
| Line 289: | Line 541: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Ingress » Dashboard== | |||
{| | |||
|valign='top'| | |||
<syntaxhighlight lang="bash"> | |||
cat << ENV | kubectl -n=kubernetes-dashboard create secret generic kubernetes-dashboard-auth --from-file=auth=/dev/stdin | |||
$(htpasswd -nbB shahed 'sadaqah!') | |||
$(htpasswd -nbB chorke 'sadaqah!') | |||
ENV | |||
</syntaxhighlight> | |||
|- | |||
|valign='top'| | |||
---- | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang="yaml" highlight="14-16" line> | |||
cat << YML | kubectl -n kubernetes-dashboard apply -f - | |||
--- | |||
apiVersion: networking.k8s.io/v1 | |||
kind: Ingress | |||
metadata: | |||
name: kubernetes-dashboard | |||
namespace: kubernetes-dashboard | |||
labels: | |||
app.kubernetes.io/version: 1.0.0 | |||
app.kubernetes.io/managed-by: kubectl | |||
app.kubernetes.io/name: kubernetes-dashboard | |||
app.kubernetes.io/instance: kubernetes-dashboard | |||
annotations: | |||
nginx.ingress.kubernetes.io/auth-type: basic | |||
nginx.ingress.kubernetes.io/auth-realm: Authentication Required | |||
nginx.ingress.kubernetes.io/auth-secret: kubernetes-dashboard-auth | |||
spec: | |||
ingressClassName: nginx | |||
rules: | |||
- host: www.k8s.local | |||
http: | |||
paths: | |||
- path: / | |||
pathType: Prefix | |||
backend: | |||
service: | |||
name: kubernetes-dashboard | |||
port: | |||
number: 80 | |||
YML | |||
</syntaxhighlight> | |||
|} | |} | ||
| Line 406: | Line 707: | ||
* [https://docs.k0sproject.io/v1.27.1+k0s.0/examples/metallb-loadbalancer/ K8s » Ingress » MetalLB] | * [https://docs.k0sproject.io/v1.27.1+k0s.0/examples/metallb-loadbalancer/ K8s » Ingress » MetalLB] | ||
* [https://docs.k0sproject.io/v1.27.1+k0s.0/examples/traefik-ingress/ K8s » Ingress » Traefik] | * [https://docs.k0sproject.io/v1.27.1+k0s.0/examples/traefik-ingress/ K8s » Ingress » Traefik] | ||
* [[K8s/Swiss Knife|K8s » Swiss Knife]] | |||
* [[K8s/Service|K8s » Service]] | |||
* [[K8s/Run|K8s » Run]] | |||
|valign='top'| | |valign='top'| | ||
* [https://medium.com/@luis.laredo.vel/configuring-pgadmin-to-access-the-backstage-databases-in-a-kubernetes-cluster-953ee087e41d K8s » Configuring PgAdmin4] | |||
* [https://stackoverflow.com/questions/51744536/ K8s » Ingress » CORS Rules] | |||
* [[K8s/CSI Hostpath Driver|K8s » CSI Hostpath Driver]] | |||
* [[K8s/HAProxy/Ingress|K8s » HAProxy » Ingress]] | |||
* [[K8s/Apache/Ingress|K8s » Apache » Ingress]] | |||
* [[K8s/Nginx/Ingress|K8s » Nginx » Ingress]] | |||
* [[K8s/Storage|K8s » Storage]] | |||
* [[K8s/Secret|K8s » Secret]] | |||
|- | |- | ||
| Line 426: | Line 738: | ||
|valign='top'| | |valign='top'| | ||
* [https://www.uptimia.com/questions/how-to-change-the-default-port-for-nginx Nginx » Change The Default Port] | |||
* [[Minikube Ingress DNS|Minikube » Ingress » DNS]] | * [[Minikube Ingress DNS|Minikube » Ingress » DNS]] | ||
* [[Minikube Systemd|Minikube » Systemd]] | * [[Minikube Systemd|Minikube » Systemd]] | ||
* [[Minikube Registry|Minikube » Registry]] | * [[Minikube Registry|Minikube » Registry]] | ||
* [[Minikube Tunnel|Minikube » Tunnel]] | |||
* [[Kubectl]] | * [[Kubectl]] | ||
* [[Ansible]] | * [[Ansible]] | ||
| Line 436: | Line 750: | ||
|valign='top'| | |valign='top'| | ||
* [https://support.severalnines.com/hc/en-us/articles/212427063 Apache » Change The Default Port] | |||
|} | |} | ||
Latest revision as of 13:30, 24 July 2025
CoreDNS
|
Kube-System » ConfigMap » CoreDNS |
|---|
cat <<'YML'|kubectl apply -n kube-system -f -
---
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
log
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
hosts {
192.168.49.1 host.minikube.internal
fallthrough
}
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30 {
disable success cluster.local
disable denial cluster.local
}
loop
reload
loadbalance
}
chorke.com:53 {
errors
cache 30
forward . 1.1.1.1 8.8.8.8
}
chorke.org:53 {
errors
cache 30
forward . 1.1.1.1 8.8.8.8
}
shahed.biz:53 {
errors
cache 30
forward . 1.1.1.1 8.8.8.8
}
group.local:53 {
errors
cache 30
forward . 192.168.49.2
}
biz.local:53 {
errors
cache 30
forward . 192.168.49.2
}
com.local:53 {
errors
cache 30
forward . 192.168.49.2
}
k8s.local:53 {
errors
cache 30
forward . 192.168.49.2
}
org.local:53 {
errors
cache 30
forward . 192.168.49.2
}
bd.local:53 {
errors
cache 30
forward . 192.168.49.2
}
io.local:53 {
errors
cache 30
forward . 192.168.49.2
}
my.local:53 {
errors
cache 30
forward . 192.168.49.2
}
YML
kubectl -n kube-system rollout restart deploy/coredns
|
External
kubectl get ns|grep external
kubectl delete namespace external
kubectl create namespace external
Internal
kubectl get ns|grep internal
kubectl delete namespace internal
kubectl create namespace internal
|
kubectl get ns|grep academia
kubectl delete namespace academia
kubectl create namespace academia
|
kubectl get ns|grep agronomy
kubectl delete namespace agronomy
kubectl create namespace agronomy
|
|
| ||
cat << YML|kubectl apply -n internal -f -
---
apiVersion: v1
kind: Service
metadata:
name: host
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
spec:
type: ExternalName
externalName: host.minikube.internal
YML
|
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
|
cat << YML|kubectl apply -n agronomy -f -
---
apiVersion: v1
kind: Service
metadata:
name: agronomy
namespace: agronomy
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/name: agronomy
app.kubernetes.io/instance: agronomy
app.kubernetes.io/managed-by: kubectl
spec:
type: ExternalName
externalName: host.minikube.internal
YML
|
|
| ||
Internal » HAProxycat << YML | kubectl apply -n internal -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: haproxy
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
spec:
ingressClassName: nginx
rules:
- host: "host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 80
YML
|
Internal » Apachecat << YML | kubectl apply -n internal -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: apache
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
spec:
ingressClassName: nginx
rules:
- host: "apache.host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 2013
YML
|
Internal » Nginxcat << YML | kubectl apply -n internal -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
spec:
ingressClassName: nginx
rules:
- host: "nginx.host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 2015
YML
|
|
| ||
Internal » GitLabcat << YML | kubectl apply -n internal -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: gitlab
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
spec:
ingressClassName: nginx
rules:
- host: "gitlab.host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 1080
YML
|
Internal » MinIOcat << YML | kubectl apply -n internal -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minio
namespace: internal
labels:
app.kubernetes.io/name: host
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/instance: host
app.kubernetes.io/managed-by: kubectl
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: '0'
spec:
ingressClassName: nginx
rules:
- host: "minio.host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 9801
- host: "s3.host.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: host
port:
number: 9800
YML
|
Agronomy » Portalcat << YML | kubectl apply -n agronomy -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: agronomy
namespace: agronomy
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/name: agronomy
app.kubernetes.io/instance: agronomy
app.kubernetes.io/managed-by: kubectl
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: '0'
spec:
ingressClassName: nginx
rules:
- host: "agronomy.chorke.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: agronomy
port:
number: 3000
- path: /services/flair/
pathType: ImplementationSpecific
backend:
service:
name: agronomy
port:
number: 9004
- path: /services/quote/
pathType: ImplementationSpecific
backend:
service:
name: agronomy
port:
number: 9003
- path: /services/audit/
pathType: ImplementationSpecific
backend:
service:
name: agronomy
port:
number: 9002
- path: /services/users/
pathType: ImplementationSpecific
backend:
service:
name: agronomy
port:
number: 9000
YML
|
Ingress » Nginx
ConfigMap » tcp-servicescat << YML | kubectl apply -n ingress-nginx -f -
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
data:
5432: "postgresql/postgresql:5432"
6379: "redis/redis-headless:6379"
YML
|
ConfigMap » udp-servicescat << YML | kubectl apply -n ingress-nginx -f -
---
apiVersion: v1
kind: ConfigMap
metadata:
name: udp-services
namespace: ingress-nginx
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
data:
1194: "internal/host:1194"
53: "kube-system/kube-dns:53"
YML
|
|
| |
Service » ingress-nginxcat << YML | kubectl apply -n ingress-nginx -f -
---
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
- name: proxied-tcp-5432
port: 5432
targetPort: 5432
protocol: TCP
- name: proxied-tcp-6379
port: 6379
targetPort: 6379
protocol: TCP
- name: proxied-udp-1194
port: 1194
targetPort: 1194
protocol: UDP
- name: proxied-udp-53
port: 53
targetPort: 53
protocol: UDP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
YML
| |
|
| |
kubectl -n ingress-nginx rollout restart deploy/ingress-nginx-controller
kubectl -n ingress-nginx rollout history deploy/ingress-nginx-controller
kubectl -n ingress-nginx rollout status deploy/ingress-nginx-controller
| |
Ingress » Dashboard
cat << ENV | kubectl -n=kubernetes-dashboard create secret generic kubernetes-dashboard-auth --from-file=auth=/dev/stdin
$(htpasswd -nbB shahed 'sadaqah!')
$(htpasswd -nbB chorke 'sadaqah!')
ENV
|
|
|
cat << YML | kubectl -n kubernetes-dashboard apply -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/managed-by: kubectl
app.kubernetes.io/name: kubernetes-dashboard
app.kubernetes.io/instance: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-realm: Authentication Required
nginx.ingress.kubernetes.io/auth-secret: kubernetes-dashboard-auth
spec:
ingressClassName: nginx
rules:
- host: www.k8s.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 80
YML
|
Minikube » Tunnel
# check minikube user either exists or not
cat /etc/passwd|grep minikube
sudo usermod -aG sudo minikube
|
# minikube no-password sudo access add to EOL
sudo visudo
minikube ALL=(ALL) NOPASSWD: ALL
|
# login to minikube user and start tunneling
sudo -i -u minikube
minikube tunnel
|
Playground
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -- cat template/nginx.tmpl
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -- cat /etc/resolv.conf
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -- cat nginx.conf
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -- cat /etc/hosts
| ||
|
| ||
kubectl -n external get endpoints
kubectl -n external get service
kubectl -n external get ingress
|
kubectl -n internal get endpoints
kubectl -n internal get service
kubectl -n internal get ingress
|
kubectl config get-contexts
sudo -i -u minikube
helm list -A
|
|
| ||
kubectl get all -A
kubectl get ns
|
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -c controller -- bash
kubectl -n ingress-nginx exec -it svc/ingress-nginx-controller -- bash
| |
|
| ||
sudo vim /etc/apache2/sites-enabled/000-default.conf sudo vim /etc/apache2/ports.conf sudo apachectl -t |
sudo systemctl restart apache2.service sudo systemctl reload apache2.service systemctl status apache2.service |
|