[Home-K8S] #22 FluxCD 계층과 분리 / 다중 클러스터 리소스 공유와 설정 분리
FluxCD - yaml 앞서 fluxcd 를 이용해서 helm chart 를 구성했습니다. 그 외에 일반적인 yaml

Talos Linux는 기본적으로 flannel 을 사용하므로, 기본 cni를 사용하지 않는 다는 것을 명시해 주어야 합니다.
controlplane.yaml 에서 cni: none 을 설정해 줍니다.
cluster:
network:
cni:
name: nonecilium 을 다음 옵션으로 구성하면 됩니다.
cilium install \
--set ipam.mode=kubernetes \
--set kubeProxyReplacement=false \
--set securityContext.capabilities.ciliumAgent="{CHOWN,KILL,NET_ADMIN,NET_RAW,IPC_LOCK,SYS_ADMIN,SYS_RESOURCE,DAC_OVERRIDE,FOWNER,SETGID,SETUID}" \
--set securityContext.capabilities.cleanCiliumState="{NET_ADMIN,SYS_ADMIN,SYS_RESOURCE}" \
--set cgroup.autoMount.enabled=false \
--set cgroup.hostRoot=/sys/fs/cgroupcilium 을 구성하는 이유는 kube-proxy 를 대신하기 위해서 구성하는 경우가 많습니다. 그 때에는 talos 옵션에서 proxy 옵션을 꺼주고 해야합니다.
cluster:
proxy:
disabled: truecilium install \
--set ipam.mode=kubernetes \
--set kubeProxyReplacement=true \
--set securityContext.capabilities.ciliumAgent="{CHOWN,KILL,NET_ADMIN,NET_RAW,IPC_LOCK,SYS_ADMIN,SYS_RESOURCE,DAC_OVERRIDE,FOWNER,SETGID,SETUID}" \
--set securityContext.capabilities.cleanCiliumState="{NET_ADMIN,SYS_ADMIN,SYS_RESOURCE}" \
--set cgroup.autoMount.enabled=false \
--set cgroup.hostRoot=/sys/fs/cgroup \
--set k8sServiceHost=localhost \
--set k8sServicePort=7445공식 Docs 에 나온 설정으로 API Gateway도 설정할 수 있습니다.
저는 nginx-ingress의 auth-url 을 사용하고 있기에 API Gateway 는 사용하지 않고 LoadBalancer 만 사용합니다.
기존에는 metal LB 를 사용하고 있던 것을 l2announcements 로 교체했습니다.
cilium install \
--set ipam.mode=kubernetes \
--set kubeProxyReplacement=true \
--set securityContext.capabilities.ciliumAgent="{CHOWN,KILL,NET_ADMIN,NET_RAW,IPC_LOCK,SYS_ADMIN,SYS_RESOURCE,DAC_OVERRIDE,FOWNER,SETGID,SETUID}" \
--set securityContext.capabilities.cleanCiliumState="{NET_ADMIN,SYS_ADMIN,SYS_RESOURCE}" \
--set cgroup.autoMount.enabled=false \
--set cgroup.hostRoot=/sys/fs/cgroup \
--set k8sServiceHost=localhost \
--set k8sServicePort=7445 \
--set l2announcements.enabled=true \
--set externalIPs.enabled=false\
--set nodePort.enabled=false \
--set ipam.operator.clusterPoolIPv4PodCIDRList="{10.244.0.0/16}" \
--set ipam.operator.clusterPoolIPv4MaskSize=24
climum 의 loadBalancerPool 로 사용할 IP 들을 설정하고, 그 값들을 ARP 가능하게 announce 합니다.
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: default-pool
spec:
blocks:
- cidr: "192.168.0.240/28"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumL2AnnouncementPolicy
metadata:
name: announce-nfs
namespace: kube-system
spec:
loadBalancerIPs: true
interfaces:
- enp2s0
Comments