#作者:Unstopabler
文章目錄
- 一.測試目標
- 二.測試環境
- 三.Kibana
- 1、查詢 Kibana pod信息
- 2、查詢Kibana service信息
- 3、Kibana service 設置
- 四.驗證測試
- 1、Kibana 監聽參數設置
- 2、Kibana節點IPv4狀態檢查
- 3、Kibana節點IPv6狀態檢查
- 4、測試結論
一.測試目標
Kibana 是一個免費且開放的用戶界面,能夠讓您對 Elasticsearch 數據進行可視化。
本次測試基于kubernetes集群,Kibana IPv4 和 IPv6 的雙棧驗證和配置。
二.測試環境
組件 | 版本 | 系統OS |
---|---|---|
Kubernetes | 1.23.9 | Linux release 8.2 |
Kibana | 7.8.1 |
三.Kibana
1、查詢 Kibana pod信息
kubectl get po kibana-kibana-956f76f58-7wptd -o go-template --template='{{range .status.podIPs}}{{printf "%s\n" .}}{{end}}'map[ip:10.X.X.X]
map[ip:2001:db8:42:d8:8162:XX:XX:XX]
2、查詢Kibana service信息
kubectl get svc kibana-kibana -o go-template --template='{{range .spec.clusterIPs}}{{printf "%s\n" .}}{{end}}'
10.XX.XX.XX
2001:XX:X:X::9ab8
3、Kibana service 設置
創建以下顯式定義 .spec.ipFamilyPolicy 為 PreferDualStack 的 Service。 Kubernetes 將分配 IPv4 和 IPv6 地址(因為該集群啟用了雙棧), 并根據 .spec.ipFamilies 數組中第一個元素的地址族, 從 .spec.ClusterIPs 列表中選擇 .spec.ClusterIP
apiVersion: v1
kind: Service
metadata:annotations:meta.helm.sh/release-name: kibanameta.helm.sh/release-namespace: defaultlabels:app: kibanaapp.kubernetes.io/managed-by: Helmheritage: Helmrelease: kibananame: kibana-kibana
spec:clusterIP: 10.96.X.XclusterIPs:- 10.96.X.XX- 2001:XX:XX:XX::9ab8externalTrafficPolicy: ClusterinternalTrafficPolicy: ClusteripFamilies:- IPv4- IPv6ipFamilyPolicy: PreferDualStackports:- name: httpnodePort: 62218port: 5601protocol: TCPtargetPort: 5601selector:app: kibanarelease: kibanasessionAffinity: Nonetype: NodePort
四.驗證測試
1、Kibana 監聽參數設置
需要把之前設置的0.0.0.0改為”::”
- name: SERVER_HOSTvalue: '::'
2、Kibana節點IPv4狀態檢查
echo `curl --output /dev/null --write-out "200" http://10.96.X.X:5601/app/kibana`
3、Kibana節點IPv6狀態檢查
echo `curl -g -6 --output /dev/null --write-out "200" http://[2001:XXX:XX:X::9ab8]:5601/app/kibana`
4、測試結論
根據上述測試結果,我們可以得出結論: Kibana在容器環境中原生已經支持 IPv4 和 IPv6 地址連接測試,連接ES的地址只能單協議,監聽參數也需要額外的設置。