為了能夠讓Ingress資源能夠工作,在Kubernetes集群中必須至少有一個運行中的ingress controller組件。也就是說如果在kubernetes集群中沒有一個ingress controller組件,只是定義了ingress資源,其實并不會實現(xiàn)http、https協(xié)議的請求轉(zhuǎn)發(fā)、負載均衡等功能。常見的ingress controller組件如下:
岑溪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
關(guān)于上述的組件目前并沒有詳細的對比,后續(xù)我們在對每個組件都有一定的了解和使用的基礎(chǔ)之上,可以給出一些詳細的對比信息。本篇內(nèi)容將主要介紹traefik組件的安裝部署以及會通過一個具體的應(yīng)用作演示。
helm traefik chart包中包含了部署traefik組件的所需的資源,我們可以通過借助該組件進行快速部署traefik組件,以下是部署命令行信息:
cmd line
> helm install --name inner-traefik --namespace kube-system \
--set image=registry.docker.hankercloud.com/ingress-controller/traefik \
--set serviceType=NodePort \
stable/traefik
部署完成后,執(zhí)行kubectl get pods -n kube-system
命令,可以看到在kube-system的命名空間中已經(jīng)存在名為 inner-traefik 的Pod。
在kubernetes 1.6版本中引入了RBAC(Role Based Access Control)機制來更好的管理資源和API的訪問。如果在集群中配置了RBAC,則需要授權(quán)Treafik使用Kubernetes的API,有兩種方式來進行設(shè)置合適的策略:通過特定的命名空間進行角色綁定(RoleBinding)以及全局角色綁定(ClusterRoleBinding)?,F(xiàn)在簡單起見,我們直接使用ClusterRoleBinding,資源定義如下:
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: traefik-ingress-controller
rules:
- apiGroups:
- ""
resources:
- services
- endpoints
- secrets
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- ingresses
verbs:
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: traefik-ingress-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: traefik-ingress-controller
subjects:
- kind: ServiceAccount
name: traefik-ingress-controller
namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-ingress-controller
namespace: kube-system
接下來我們執(zhí)行如下命令創(chuàng)建資源并修改deployment的資源定義文件。
kubectl apply -f traefik-rbac.yml
kubectl edit deploy inner-traefik -n kube-system
執(zhí)行完上述的操作之后,我們可以進行校驗相關(guān)的資源已經(jīng)正常啟動。
kubectl logs $(kubectl get pods -n kube-system |grep traefik | awk '{print $1}') -n kube-system
由于我們使用的是Deployment部署的traefik組件,其Service Type為NodePort,通過 kubectl get svc -n kube-system|grep traefik
,可以看到端口映射關(guān)系,接下來我們在阿里云申請一個負載均衡的設(shè)備,然后進行相應(yīng)的配置之后就完成了這一步操作。
另外一種替代方式是使用DaemonSet的方式部署traefik組件,設(shè)置主機端口和Pod實例端口的映射關(guān)系,也可以完成這一任務(wù)。
接下來我們在kubernetes集群中創(chuàng)建一個ingress資源,由于我們之前已經(jīng)在集群中部署了一個wordpress應(yīng)用,資源定義文件如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wordpress-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: blog.hankercloud.com
http:
paths:
- path: /
backend:
serviceName: wordpress-test-wordpress
servicePort: 80
完成上述的操作之后,我們在本地修改/etc/hosts
文件,手動配置blog.hankercloud.com
的域名解析記錄,在瀏覽器地址欄輸入 http://blog.hankercloud.com 就可以看到頁面了,到此我們完成了traefik組件的安裝部署及調(diào)試工作。
https://docs.traefik.io/v1.5/user-guide/kubernetes/
https://kubernetes.io/docs/concepts/services-networking/ingress/
當(dāng)前文章:【Kubernetes系列】第5篇Ingresscontroller-traefik組件介紹
網(wǎng)站URL:http://aaarwkj.com/article28/jjjcjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、網(wǎng)站收錄、定制開發(fā)、網(wǎng)站改版、品牌網(wǎng)站建設(shè)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)