|NO.Z.00164|——————————|^^ 部署 ^^|——|KuberNetes&服務釋出.V15|-------------------------------------------------------|ingress.v03|ingress部署.V01|擴容|縮容|
阿新 • • 發佈:2022-03-30
[CloudNative:KuberNetes&服務釋出.V15] [Applications.KuberNetes] [|DevOps|k8s|服務釋出|什麼是Ingress|使用helm安裝ingress|Ingress簡單使用|Ingress多級域名使用|]
一、ingress擴容縮容節點
### --- ingress擴容節點 ~~~ 將ingress controller部署至Node節點(ingress controller不能部署在master節點, ~~~ 需要安裝視訊中的步驟將ingress controller部署至Node節點, ~~~ 生產環境最少三個ingress controller,並且最好是獨立的節點) ~~~ DaemonSet 會一直監聽這個節點的狀態,若是發現有一個節點符合了這個配置規則, ~~~ 它就會把這個pod部署在這個節點上,若是已經有了這個節點, ~~~ 比如master03,若是沒有這個label的話,它就會把之前的刪除掉,重新建立。 ~~~ 擴節點,比如部署在k8s-node01節點
[root@k8s-master01 ingress-nginx]# kubectl label node k8s-node01 ingress=true //把node01打了一個標籤,ingress controller就會在node01上部署一個:
node/k8s-node01 labeled
### --- 檢視擴容後ingress部署節點 ~~~ 擴容之後在k8s叢集外部還有LSB需要把後端ingress地址給加上(擴容的地址) ~~~ 可以看到node01下的Ingress已經啟動了。 <none> [root@k8s-master01 ingress-nginx]# kubectl get po -n ingress-nginx -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ingress-nginx-controller-cxtgg 1/1 Running 0 8m38s 192.168.1.13 k8s-master03 <none> <none> ingress-nginx-controller-df8xn 0/1 Running 0 69s 192.168.1.14 k8s-node01 <none>
### --- ingress縮容節點
~~~ 縮節點 剔除k8s-master03節點的ingress controller
~~~ 把這個標籤給刪除掉,刪掉之後這個節點的pod就會被刪除掉。
~~~ 它就不符合noteselect了,就會把之前的刪除掉。
~~~ 刪掉的順序是:需要現在k8s之外的LBS上把需要下掉的比如master03的IP地址+埠號給剔除掉,
~~~ 然後在執行,不然可能出現服務宕機或者服務不響應的情況。
[root@k8s-master01 ingress-nginx]# kubectl label node k8s-master03 ingress- node/k8s-master03 labeled
### --- 檢視ingress縮容後節點數量
[root@k8s-master01 ingress-nginx]# kubectl get po -n ingress-nginx -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-controller-df8xn 1/1 Running 0 6m55s 192.168.1.14 k8s-node01 <none> <none>
二、ingress部署宿主機檢視
### --- 登入k8s-node01節點操作
~~~ 因為我們使用的是hostNetwork,所以它會在宿主機上直接啟用了一個nginx程序,
[root@k8s-node01 ~]# netstat -lntp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 53541/nginx: master
tcp6 0 0 :::80 :::* LISTEN 53541/nginx: master
### --- 因為Ingress內部是nginx加上openresty實現的,
~~~ 它是直接監聽到宿主機的埠,直接在宿主機起了一個程序,去監聽它,
~~~ 這個就是hostname使用宿主機的網路,不用再經過代理。
[root@k8s-node01 ~]# ps -aux | grep nginx
root 18289 0.0 0.2 112824 2276 pts/0 S+ 18:14 0:00 grep --color=auto nginx
101 53441 0.0 0.0 204 4 ? Ss 00:18 0:00 /usr/bin/dumb-init -- /nginx-ingress-controller --publish-service=ingress-nginx/ingress-nginx-controller --election-id=ingress-controller-leader --ingress-class=nginx --configmap=ingress-nginx/ingress-nginx-controller --validating-webhook=:8443 --validating-webhook-certificate=/usr/local/certificates/cert --validating-webhook-key=/usr/local/certificates/key
101 53466 0.2 2.5 743328 24904 ? Ssl 00:18 2:22 /nginx-ingress-controller --publish-service=ingress-nginx/ingress-nginx-controller --election-id=ingress-controller-leader --ingress-class=nginx --configmap=ingress-nginx/ingress-nginx-controller --validating-webhook=:8443 --validating-webhook-certificate=/usr/local/certificates/cert --validating-webhook-key=/usr/local/certificates/key
### --- 檢視ingress所對應的埠號
[root@k8s-node01 ~]# netstat -lntp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9099 0.0.0.0:* LISTEN 79133/calico-node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 53541/nginx: master
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)