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

溫馨提示×

溫馨提示×

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

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

怎么訪問Kubernetes集群中的EMQ X

發布時間:2021-11-30 11:56:41 來源:億速云 閱讀:431 作者:iii 欄目:互聯網科技

這篇文章主要介紹“怎么訪問Kubernetes集群中的EMQ X”,在日常操作中,相信很多人在怎么訪問Kubernetes集群中的EMQ X問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么訪問Kubernetes集群中的EMQ X”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Ingress 介紹

Ingress 公開了從集群外部到集群內 服務 的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 資源上定義的規則控制。官網的一個簡單示例如下:

怎么訪問Kubernetes集群中的EMQ X

Ingress 為服務提供了供外部訪問的 URL,負載均衡流量,TLS/SSL 終止的能力。Ingress 可以簡單理解為服務的服務,通過獨立的 Ingress 對象來指定請求轉發的規則,將請求路由到對應的服務中。

為了讓 Ingress 資源工作,集群必須有一個正在運行的 Ingress 控制器。 NGINX Ingress Controller 是由 Kubernetes 提供支持和維護的一個控制器。

本文主要介紹如何通過 NGINX Ingress Controller 來訪問 Kubernetes 集群中的 EMQ X。

準備

開始之前,請確保您已經搭建好了一個可用的 Kubernetes 集群,本文示例是基于阿里云標準版托管集群。

安裝 EMQ X

參考 emqx charts ,使用 Helm 進行安裝

$ helm repo add emqx https://repos.emqx.io/charts
$ kubectl create ns my-emqx
$ helm install my-emqx emqx/emqx -n my-emqx

確保 pod 處于 running 狀態

$ kubectl get pod -n my-emqx
NAME        READY   STATUS    RESTARTS   AGE
my-emqx-0   1/1     Running   0          97s
my-emqx-1   1/1     Running   0          73s
my-emqx-2   1/1     Running   0          51s

查看 service

$ kubectl get svc -n my-emqx
NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                                           AGE
my-emqx            ClusterIP   172.21.5.160   <none>        1883/TCP,8883/TCP,8081/TCP,8083/TCP,8084/TCP,18083/TCP            5m
my-emqx-headless   ClusterIP   None           <none>        1883/TCP,8883/TCP,8081/TCP,8083/TCP,8084/TCP,18083/TCP,4370/TCP   5m

部署 NGINX Ingress Controller

參考 Installation Guide,根據不同情況選擇不同的配置進行安裝,也可以通過 Helm 安裝

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo update
$ helm install my-release ingress-nginx/ingress-nginx

因為本文基于阿里云集群,可以直接選擇組件安裝

查看 service

$ Kubectl get nginx-ingress-lb svc -n kube-system
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)
nginx-ingress-lb   LoadBalancer   172.21.6.205   47.99.187.164   80:30639/TCP,443:30396/TCP   3m12s

創建 Ingress 對象

# ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
  name: emqx
spec:
  rules:
  - host: emqx.cn.iotdp.cn
    http:
      paths:
      - backend:
          serviceName: my-emqx
          servicePort: 18083
        path: /
      - backend:
          serviceName: my-emqx
          servicePort: 8083
        path: /mqtt

路由規則:

  • 匹配 /mqtt路由到 8083 Websocket 端口

  • 其余路徑路由到 18083 dashboard

部署資源

$ kubectl apply -f ingress.ymal -n my-emqx

部署完成以后,修改 DNS 解析,便可以通過:http://emqx.cn.iotdp.cn 來訪問 dashboard

怎么訪問Kubernetes集群中的EMQ X

然后通過 8083/path訪問 Websocket

怎么訪問Kubernetes集群中的EMQ X

TCP

Ingress 不支支持 TCP 和 UDP 服務,因此 Ingress 使用 --tcp-services-configmap--udp-services-configmap 指向一個包含端口映射關系的 configmap 來訪問,key 為外部暴露的端口,value 格式為:<namespace/service name>:<service port>:[PROXY]:[PROXY]

首先修改 ingress-nginx deployment

$ kubectl edit deployment nginx-ingress-controller -n kube-system

添加以下內容到spec.template.spec.containers.args

  • --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services

  • --udp-services-configmap=$(POD_NAMESPACE)/udp-services

containers:
  - args:
      - /nginx-ingress-controller
      - '--configmap=$(POD_NAMESPACE)/nginx-configuration'
      - '--annotations-prefix=nginx.ingress.kubernetes.io'
      - '--publish-service=$(POD_NAMESPACE)/nginx-ingress-lb'
      - '--tcp-services-configmap=$(POD_NAMESPACE)/tcp-services'
      - '--udp-services-configmap=$(POD_NAMESPACE)/udp-services'

配置 tcp-service

# tcp-service.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  1883: "my-emqx/my-emqx:1883"

最后在服務中配置對應端口

$ kubectl edit svc nginx-ingress-lb -n kube-system

配置如下

apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-ingress-lb
  name: nginx-ingress-lb
  namespace: kube-system
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: 80
    - name: https
      port: 443
      protocol: TCP
      targetPort: 443
    - name: emqx-tcp
      port: 1883
      protocol: TCP
      targetPort: 1883
  selector:
    app: ingress-nginx

查看 ingress-nginx 服務

$ kubectl get svc nginx-ingress-lb -n kube-system
NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              AGE
nginx-ingress-lb   ClusterIP   172.21.11.90   <none>        80:30639/TCP,443:30396/TCP,1883:30657/TCP   13m

我們便可以通過 1883 端口連接到 EMQ X 服務了。

怎么訪問Kubernetes集群中的EMQ X

到此,關于“怎么訪問Kubernetes集群中的EMQ X”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

沁水县| 澜沧| 昭苏县| 元氏县| 遂宁市| 浦北县| 韶山市| 锦州市| 黄平县| 马公市| 沽源县| 康平县| 禹城市| 德清县| 青冈县| 手游| 聂拉木县| 康乐县| 冕宁县| 梓潼县| 汤阴县| 北川| 油尖旺区| 兴安县| 富川| 襄城县| 华蓥市| 湖州市| 临高县| 遂平县| 林周县| 武城县| 德昌县| 友谊县| 图木舒克市| 巴林左旗| 连江县| 峨眉山市| 福贡县| 珠海市| 廉江市|