背景客戶的服務申請了pingan.com集團二級網域名稱,並配置到應用的 ingress 中,但是訪問不了
排錯步驟
二級網域名稱pingan.com(本例)屬於外網 dns 記錄,公司辦公網路解析不到位址,因此需要先判斷 dns 定址是否正常。
如果 dns 解析不到 ip 位址,則需要客戶向網路組確認是否成功新增記錄。
確認從網域名稱到服務的網路路徑。
依次判斷網路是否連通,後端服務是否正常。
下面是客戶在servicebot上申請的網域名稱解析:
urlvip
***.pingan.com
***.***.***.***
可以看到解析出了正確位址。
網域名稱到服務的網路路徑:
kubernetes_web-service_flow
過程解釋: 通常客戶的應用需要提供對網際網路的服務,都需要部署在 dmz 網路區域中。
客戶通過網路組申請了公網網域名稱,公網網域名稱對應乙個公網 ip(e.g. ***.28.212.56),公網 ip 將流量**到 vip。
elb(負載均衡)在雲平台上購置,會產生乙個vip,這個vip將前端過來的流量**到客戶的 node 節點上。
在 node 上執行 traefik,監聽 80 埠,接收來自 vip 的請求。 traefik 將接收到的請求丟給apiserver,實際上 traefik 擔任 ingress controller。
traefik 和 kubernetes api 實時地打交道,獲取 ingress 的資訊,從而得知具體的 url 與 service 對應關係。
traefik 將請求**到後端 service。
通過命令驗證:
#
首先要看 vip 是否可訪問
#這裡例子是可訪問的,當然就沒問題了
[root@shb-l0117161 ~]# telnet ***.128.118.241 80
trying ***.128.118.241...
connected to ***.128.118.241.
escape character is '^]'.
exit
複製**
1.驗證vip是否可訪問,注意要在vip所在網段,否則可能沒有開通防火牆。
#
traefik label
#215.128.118.201 是 vip **過來的其中乙個 node
[root@shb-l0075967 ~]# kubectl get nodes -o=wide --show-labels | sed -n '1p;/215\.128\.118\.201/p'
name status roles age version external-ip os-image kernel-version container-runtime labels
215.128.118.201 ready 42d v1.9.1 centos linux 7 (core) 3.10.0-693.21.1.el7.x86_64 docker: caas_log_cloud=installing,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,caas_cluster=shb-dmz-fp-core-stg-106593af,host_name=shb-l0117161,kubernetes.io/hostname=215.128.118.201,lb=traefik
[root@shb-l0075967 ~]# kubectl get pods -o=wide --namespace=kube-system | sed -n '1p;/215\.128\.118\.201/p'
name ready status restarts age ip node
caas-log-helper-2hvqt 1/1 running 0 42d 172.1.115.2 215.128.118.201
traefik-ingress-lb-4z76b 1/1 running 0 5d 215.128.118.201 215.128.118.201
[root@shb-l0075967 ~]#
複製**
2.檢視 vip 的後端 node ip是否有執行 traefik,這裡只檢視了其中乙個節點,如上圖所示的三個節點都必須要有執行才正常。
複製**3.檢視node上 traefik 是否正常監聽,到這一步都正常,且確保防火牆開通的話,那瀏覽器過來的請求就已經到達 k8s 集群中了,剩下的就是 k8s 集群通過 ingress 元件找到具體服務。
複製**4.驗證一下 ingress 中所配置的 url 與 後端 service 的對應關係是否正確。
**ps. 本次舉例的問題最後排查到是三颱負責負載的客戶 node 的其中一台上,flanneld 元件掛了,導致 elb 判斷服務不可用。所以必須保證負載節點所有節點服務一直正常。換句話說,elb 只管負載均衡,不管高可用。 **
ingress簡介:
介紹 traefik: traefik 是一款開源的反向**與負載均衡工具。它最大的優點是能夠與常見的微服務系統直接整合,可以實現自動化動態配置。目前支援docker, swarm, mesos/marathon, mesos, kubernetes, consul, etcd, zookeeper, boltdb, rest api等等後端模型。
k8s集群中 spark訪問hbase中資料
架構系列文章 首先我們需要對hbase的訪問原理非常清楚.可以參考 我們這裡已經在k8s中部署了hdfs和zookeeper以及hbase.部署可以參考 hbase資料分割槽是按照region進行的,分割槽的location就是各個region的location。那麼後續分配executor時可以按...
K8s 從懵圈到熟練 集群網路詳解
作者 聲東 阿里雲售後技術專家 總體上來說,阿里雲 k8s 集群網路配置完成之後,如下圖所示 包括集群 cidr vpc 路由表 節點網路 節點的 podcidr 節點上的虛擬網橋 cni0 連線 pod 和網橋的 veth 等部分。基本上我們可以把這些配置分三種情況來理解 集群配置,節點配置以及 ...
如何在網際網路中隱藏自己
隨著網際網路的普及,人們對網路的依賴越來越大的同時,個人隱私洩露的風險也越來越高。不管是黑客,還是白客,灰客,抑或是普通的上網者,都希望在網際網路上保護洩漏,防止自己的隱私被他人窺竊,有的甚至希望在網際網路上隱藏自己的存在。本文就列舉幾種常用的方法 現在不管是辦理寬頻,還是辦理手機卡都需要實名制,這...