真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么訪問(wèn)Kubernetes集群中的EMQX

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

尖山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

Ingress 介紹

Ingress 公開(kāi)了從集群外部到集群內(nèi) 服務(wù) 的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 資源上定義的規(guī)則控制。官網(wǎng)的一個(gè)簡(jiǎn)單示例如下:

怎么訪問(wèn)Kubernetes集群中的EMQ X

Ingress 為服務(wù)提供了供外部訪問(wèn)的 URL,負(fù)載均衡流量,TLS/SSL 終止的能力。Ingress 可以簡(jiǎn)單理解為服務(wù)的服務(wù),通過(guò)獨(dú)立的 Ingress 對(duì)象來(lái)指定請(qǐng)求轉(zhuǎn)發(fā)的規(guī)則,將請(qǐng)求路由到對(duì)應(yīng)的服務(wù)中。

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

本文主要介紹如何通過(guò) NGINX Ingress Controller 來(lái)訪問(wèn) Kubernetes 集群中的 EMQ X。

準(zhǔn)備

開(kāi)始之前,請(qǐng)確保您已經(jīng)搭建好了一個(gè)可用的 Kubernetes 集群,本文示例是基于阿里云標(biāo)準(zhǔn)版托管集群。

安裝 EMQ X

參考 emqx charts ,使用 Helm 進(jìn)行安裝

$ 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 狀態(tài)

$ 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           1883/TCP,8883/TCP,8081/TCP,8083/TCP,8084/TCP,18083/TCP            5m
my-emqx-headless   ClusterIP   None                   1883/TCP,8883/TCP,8081/TCP,8083/TCP,8084/TCP,18083/TCP,4370/TCP   5m

部署 NGINX Ingress Controller

參考 Installation Guide,根據(jù)不同情況選擇不同的配置進(jìn)行安裝,也可以通過(guò) Helm 安裝

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

因?yàn)楸疚幕诎⒗镌萍?,可以直接選擇組件安裝

查看 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

創(chuàng)建 Ingress 對(duì)象

# 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

路由規(guī)則:

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

  • 其余路徑路由到 18083 dashboard

部署資源

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

部署完成以后,修改 DNS 解析,便可以通過(guò):http://emqx.cn.iotdp.cn 來(lái)訪問(wèn) dashboard

怎么訪問(wèn)Kubernetes集群中的EMQ X

然后通過(guò) 8083/path訪問(wèn) Websocket

怎么訪問(wèn)Kubernetes集群中的EMQ X

TCP

Ingress 不支支持 TCP 和 UDP 服務(wù),因此 Ingress 使用 --tcp-services-configmap--udp-services-configmap 指向一個(gè)包含端口映射關(guān)系的 configmap 來(lái)訪問(wèn),key 為外部暴露的端口,value 格式為:::[PROXY]:[PROXY]

首先修改 ingress-nginx deployment

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

添加以下內(nèi)容到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"

最后在服務(wù)中配置對(duì)應(yīng)端口

$ 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 服務(wù)

$ 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           80:30639/TCP,443:30396/TCP,1883:30657/TCP   13m

我們便可以通過(guò) 1883 端口連接到 EMQ X 服務(wù)了。

怎么訪問(wèn)Kubernetes集群中的EMQ X

到此,關(guān)于“怎么訪問(wèn)Kubernetes集群中的EMQ X”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


網(wǎng)站題目:怎么訪問(wèn)Kubernetes集群中的EMQX
轉(zhuǎn)載注明:http://weahome.cn/article/gsijjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部