はじめに
ECK (Elastic Cloud on Kubernetes) の Kibana は QuickStartを踏襲すると、 kubectl port-forward
でのポートフォワードでのアクセスのみで、外から直接 IP で表示ができない。
そこで LoadbalancerIP を設定して、外部疎通可能な EXTERNAL-IP
をアサインして直接 IP で外部ネットワークから疎通(ブラウザで表示)できるように設定する。
Kibana設定
kibana 向けの yaml に下記を追加すると、作成される Service が type: LoadBalancer で作成される。
- kind: Kibana
- spec.http.service.spec
- type: LoadBalancer
- 作成する Service を LoadBalancer とする。(デフォルトは ClusterIP)
- loadBalancerIP: [固定IP]
- LoadBalancer で付与される IP を固定 IP でアサインする
- 設定しないと自動で EXTERNAL-IP がアサインされる
- type: LoadBalancer
- spec.http.service.spec
spec:
http:
service:
spec:
type: LoadBalancer
loadBalancerIP: [固定IP]
全体例としては下記となる。 (name, namespace, アサインしたip は 実施環境の ElasticStack , Loadbalancer で適応した例)
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: monitoring-kibana
namespace: elastic-monitoring
spec:
version: 7.6.0
count: 1
elasticsearchRef:
name: monitoring-elasticsearch
http:
service:
spec:
type: LoadBalancer
loadBalancerIP: 192.168.131.1
上記適応後は下記のように EXTERNAL-IP がアサインされ、アサインされた IP でブラウザからアクセスできるようになる。
$ kubectl get svc -n elastic-monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
monitoring-kibana-kb-http LoadBalancer 10.233.50.138 192.168.131.1 5601:30588/TCP 4d18h
ブラウザでのアクセス例。
参考
実施環境
ECK https://qiita.com/suzuyui/items/5307e767ec0745c9ad23
オンプレLoadbalancer https://qiita.com/suzuyui/items/c83554dd055ef0f4253a