cilium-bgp
問題名
cilium-bgp
概要
cilium+BGPをdocument(https://docs.cilium.io/en/stable/gettingstarted/bgp/) 通りに構築したが、うまくいかない。
何が間違っているのかと、Ingress Nginxまで構築、検証してほしい。
- ingress-nginxを構築する際には、helmを利用し構築すると良い。
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace
前提条件
問題の意図から外れないこと。
初期状態
一部のPodがContainerCreating
の状態から進まない。
終了状態
Nginx IngressをService Type LoadBlancerで構築し、該当のexternal IP(192.168.26.10)に踏み台サーバからアクセスをすると404が返ってくる。
解説
調査
CNIである、ciliumのPodがcrashしているため他のPodが立ち上がらない。
ciliumのPodのLogを確認しみる。
kubectl logs cilium-x6trf -n kube-system
すると以下のログが見れる。
level=fatal msg="Failed to open BGP config file" error="open /var/lib/cilium/bgp/config.yaml: no such file or directory" subsys=bgp-speaker
修正
原因はciliumのbgp-configというConfigMapが誤っていたことによるもの。
MetalLBのconfig-mapに似ているが、違う点がある。
修正前
apiVersion: v1
kind: ConfigMap
metadata:
namespace: kube-system
name: bgp-config
data:
config: |
peers:
- peer-address: 192.168.26.254
peer-asn: 65020
my-asn: 65021
address-pools:
- name: default
protocol: bgp
addresses:
- 192.168.26.10/31
修正後
apiVersion: v1
kind: ConfigMap
metadata:
namespace: kube-system
name: bgp-config
data:
config.yaml: |
peers:
- peer-address: 192.168.26.254
peer-asn: 65020
my-asn: 65021
address-pools:
- name: default
protocol: bgp
addresses:
- 192.168.26.10/31
diff
7c7
< config: |
---
> config.yaml: |
また、修正しNginx Ingressを構築してcurlなどでIngressから404が返ってくることを確認する。