本篇文章給大家分享的是有關(guān)k8s使用ingress-nginx負(fù)載均衡的示例分析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
創(chuàng)新互聯(lián)建站是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站備案、服務(wù)器租用、國(guó)際域名空間、軟件開發(fā)、微信小程序開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營(yíng)推廣經(jīng)驗(yàn)的科技公司,有著多年的網(wǎng)站建站經(jīng)驗(yàn),致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個(gè)面向全國(guó)乃至全球的業(yè)務(wù)窗口:建站聯(lián)系電話:18980820575
ingress-nginx負(fù)載均衡調(diào)用順序:用戶--->ingress-nginx(pod)--->ingress-nginx(控制器)--->ingress--->service--->pod
1.下載安裝ingress-nginx(七層調(diào)度器)
https://kubernetes.github.io/ingress-nginx/deploy/ --詳細(xì)文檔
https://github.com/kubernetes/ingress-nginx/tree/master/deploy --ingress-nginx的yaml文件
[root@k8s1 ~]# kubectl explain ingress --幫助信息
[root@k8s1 ~]# vim /etc/sysconfig/kubelet --啟用ipvs功能(service負(fù)載均衡有三種userspace,iptables,ipvs)
KUBE_PROXY_MODE=ipvs --添加參數(shù)
[root@k8s1 ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
[root@k8s1 ~]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-68db76b4db-pqcl7 0/1 ContainerCreating 0 35s
[root@k8s1 ~]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-68db76b4db-pqcl7 1/1 Running 0 9m20s
[root@k8s1 ~]#
2.創(chuàng)建service控制器和后端三個(gè)pod
[root@k8s1 ~]# vim service-pod.yaml
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
spec:
selector:
app: ingress-nginx --與下面的pod保持一至
release: canary
ports:
- name: http
targetPort: 80
port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy-ng
namespace: ingress-nginx
spec:
replicas: 3
selector:
matchLabels:
app: ingress-nginx --與上面的service保持一至
release: canary
template:
metadata:
labels:
app: ingress-nginx --與上面的service保持一至
release: canary
spec:
containers:
- name: ingress-nginx --與上面的service保持一至
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
[root@k8s1 ~]# kubectl apply -f service-pod.yaml
service/ingress-nginx created
deployment.apps/myapp-deploy-ng created
[root@k8s1 ~]# kubectl get pods -o wide -n ingress-nginx
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myapp-deploy-ng-65d64df569-5f9l2 1/1 Running 0 9m6s 10.244.2.9 k8s3 <none> <none>
myapp-deploy-ng-65d64df569-n288f 1/1 Running 0 9m6s 10.244.1.76 k8s2 <none> <none>
myapp-deploy-ng-65d64df569-vnrj5 1/1 Running 0 9m6s 10.244.1.77 k8s2 <none> <none>
nginx-ingress-controller-68db76b4db-d2h75 1/1 Running 0 18d 10.244.2.240 k8s3 <none> <none>
[root@k8s1 ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx ClusterIP 10.99.27.16 <none> 80/TCP 20s
3.創(chuàng)建service-nodeport
[root@k8s1 ~]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
[root@k8s1 ~]# vim service-nodeport.yaml
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
nodePort: 30880
- name: https
port: 443
targetPort: 443
protocol: TCP
nodePort: 30443
selector:
app: ingress-nginx
[root@k8s1 ~]# kubectl apply -f service-nodeport.yaml
service/ingress-nginx configured
[root@k8s1 ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx NodePort 10.99.27.16 <none> 80:30880/TCP,443:30443/TCP 11h
[root@k8s1 ~]# kubectl describe svc ingress-nginx -n ingress-nginx
Name: ingress-nginx
Namespace: ingress-nginx
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"ingress-nginx","namespace":"ingress-nginx"},"spec":{"ports":[{"na...
Selector: app=ingress-nginx
Type: NodePort
IP: 10.99.27.16
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 30880/TCP
Endpoints: 10.244.1.76:80,10.244.1.77:80,10.244.2.9:80 --后端代理的三個(gè)pod地址
Port: https 443/TCP
TargetPort: 443/TCP
NodePort: https 30443/TCP
Endpoints: 10.244.1.76:443,10.244.1.77:443,10.244.2.9:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
[root@k8s1 ~]# curl http://172.16.8.12:30880
4.創(chuàng)建ingress控制器
[root@k8s1 ~]# cat ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myapp.magedu.com --域名
http:
paths:
- path:
backend:
serviceName: ingress-nginx --service名字
servicePort: 80
[root@k8s1 ~]# kubectl apply -f ingress.yaml
ingress.extensions/ingress-myapp created
[root@k8s1 ~]# kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-myapp myapp.magedu.com 80 4s
[root@k8s1 ~]# kubectl describe ingress ingress-myapp --查看ingress-myapp詳細(xì)信息
[root@k8s1 ~]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-68db76b4db-d2h75 1/1 Running 0 18d
[root@k8s1 ~]# kubectl exec -n ingress-nginx -it nginx-ingress-controller-68db76b4db-d2h75 -- /bin/sh
$
5.訪問(wèn)web站點(diǎn)
[root@k8s1 ~]# curl http://172.16.8.12:30880/hostname.html --返回的結(jié)果就是三個(gè)pod的主機(jī)名
myapp-deploy-ng-65d64df569-5f9l2
[root@k8s1 ~]# curl http://172.16.8.12:30880/hostname.html
myapp-deploy-ng-65d64df569-5f9l2
[root@k8s1 ~]# curl http://172.16.8.12:30880/hostname.html
myapp-deploy-ng-65d64df569-vnrj5
[root@k8s1 ~]# curl http://172.16.8.12:30880/hostname.html
myapp-deploy-ng-65d64df569-vnrj5
[root@k8s1 ~]# curl http://172.16.8.12:30880/hostname.html
myapp-deploy-ng-65d64df569-n288f
[root@k8s1 ~]#
以上就是k8s使用ingress-nginx負(fù)載均衡的示例分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標(biāo)題:k8s使用ingress-nginx負(fù)載均衡的示例分析
網(wǎng)站鏈接:http://muchs.cn/article48/jpghhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站建設(shè)、域名注冊(cè)、自適應(yīng)網(wǎng)站、、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)