91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Kubernetes系列】第5篇 Ingress controller - traefik組件介紹

發布時間:2020-07-07 04:56:18 來源:網絡 閱讀:550 作者:wx5d32e3bc1243e 欄目:云計算

1. 概述

為了能夠讓Ingress資源能夠工作,在Kubernetes集群中必須至少有一個運行中的ingress controller組件。也就是說如果在kubernetes集群中沒有一個ingress controller組件,只是定義了ingress資源,其實并不會實現http、https協議的請求轉發、負載均衡等功能。常見的ingress controller組件如下:

  • Nginx
  • Traefik
  • Kong
  • Istio
  • HAProxy

關于上述的組件目前并沒有詳細的對比,后續我們在對每個組件都有一定的了解和使用的基礎之上,可以給出一些詳細的對比信息。本篇內容將主要介紹traefik組件的安裝部署以及會通過一個具體的應用作演示。

2. traefik組件的安裝部署

2.1 通過helm chart部署traefik

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

部署完成后,執行kubectl get pods -n kube-system命令,可以看到在kube-system的命名空間中已經存在名為 inner-traefik 的Pod。

2.2 RBAC配置

在kubernetes 1.6版本中引入了RBAC(Role Based Access Control)機制來更好的管理資源和API的訪問。如果在集群中配置了RBAC,則需要授權Treafik使用Kubernetes的API,有兩種方式來進行設置合適的策略:通過特定的命名空間進行角色綁定(RoleBinding)以及全局角色綁定(ClusterRoleBinding)。現在簡單起見,我們直接使用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  

接下來我們執行如下命令創建資源并修改deployment的資源定義文件。

kubectl apply -f traefik-rbac.yml
kubectl edit deploy inner-traefik -n kube-system

執行完上述的操作之后,我們可以進行校驗相關的資源已經正常啟動。

kubectl logs $(kubectl get pods -n kube-system |grep traefik | awk '{print $1}') -n kube-system
2.3 負載均衡配置

由于我們使用的是Deployment部署的traefik組件,其Service Type為NodePort,通過 kubectl get svc -n kube-system|grep traefik,可以看到端口映射關系,接下來我們在阿里云申請一個負載均衡的設備,然后進行相應的配置之后就完成了這一步操作。

另外一種替代方式是使用DaemonSet的方式部署traefik組件,設置主機端口和Pod實例端口的映射關系,也可以完成這一任務。

3. 創建ingress資源并進行調試

接下來我們在kubernetes集群中創建一個ingress資源,由于我們之前已經在集群中部署了一個wordpress應用,資源定義文件如下:

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組件的安裝部署及調試工作。

4. 參考文檔:

https://docs.traefik.io/v1.5/user-guide/kubernetes/
https://kubernetes.io/docs/concepts/services-networking/ingress/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁源县| 平乐县| 大姚县| 西峡县| 平泉县| 莎车县| 广水市| 石嘴山市| 稷山县| 河北区| 淳化县| 喜德县| 新密市| 扶风县| 花莲市| 临武县| 陇川县| 阿坝| 抚松县| 武陟县| 德江县| 南雄市| 郧西县| 兴国县| 扬中市| 静安区| 清水河县| 新建县| 天长市| 高安市| 瑞昌市| 和林格尔县| 穆棱市| 秦皇岛市| 类乌齐县| 达州市| 蒲江县| 洪泽县| 墨竹工卡县| 随州市| 宁蒗|