들어가며
- Calico mode 를 변경하는 방법에 대해 알 수 있습니다.
내용
다음 파일을 사용하여 calico mode 를 전환할 수 있습니다.
IPIP Mode
# 기존에 eBPF Mode 로 사용중이라면 pod 를 삭제해줍니다. # Delete eBPF Mode YAML $ kubectl delete -f ./calico-v3.19-spsd-ebpf.yaml # eBPF Mode 에 필요한 config map 을 삭제합니다. # Delete eBFP configmaps $ kubectl delete configmaps -n kube-system kubernetes-services-endpoint # Apply IPIP Mode YAML $ kubectl apply -f ./calico-v3.19-spsd.yaml # Tunnel mode $ ./calicoctl patch felixconfiguration default --patch='{"spec": {"bpfExternalServiceMode": "Tunnel"}}' # eBPF mode false $ ./calicoctl patch felixconfiguration default --patch='{"spec": {"bpfEnabled": false}}' # Enable IPIP mode $ kubectl patch ds -n kube-system kube-proxy --type merge -p '{"spec":{"template":{"spec":{"nodeSelector":{"non-calico": null}}}}}' # Restart Calico Controller / Node $ kubectl delete pod -n kube-system -l k8s-app=calico-kube-controllers $ kubectl delete pod -n kube-system -l k8s-app=calico-node # Check Calico Mode $ ./calicoctl get ippool -owide # Check IPTables Chain $ sudo iptables -t nat -S
eBPF Mode
eBPF mode 를 사용하기 위해 첨부된 ebpf_config.yaml 을 수정합니다.
# API server 확인 $ kubectl get endpoints -A -owide |grep kubernetes
- ebpf_config.yaml
sudo vi ebpf_config.yaml
확인한 endpoint api server 와 port 를 입력한 뒤 저장합니다.
kind: ConfigMap apiVersion: v1 metadata: name: kubernetes-services-endpoint namespace: kube-system data: KUBERNETES_SERVICE_HOST: "API-SERVER" KUBERNETES_SERVICE_PORT: "API-PORT"
- Apply ebpf mode
# 기존에 IPIP Mode 를 사용중이라면 중지합니다. # Delete IPIP Mode YAML $ kubectl delete -f ./calico-v3.19-spsd.yaml # Apply eBPF configmaps $ kubectl apply -f ./ebpf_config.yaml # Apply eBPF Mode YAML # kubectl apply -f ./calico-v3.19-spsd-ebpf.yaml # Restart Calico Controller / Node $ kubectl delete pod -n kube-system -l k8s-app=calico-kube-controllers $ kubectl delete pod -n kube-system -l k8s-app=calico-node # Enable eBPF mode $ kubectl patch ds -n kube-system kube-proxy -p '{"spec":{"template":{"spec":{"nodeSelector":{"non-calico": "true"}}}}}' # IPIP mode false $ ./calicoctl patch felixconfiguration default --patch='{"spec": {"bpfEnabled": true}}' # DSR mode $ ./calicoctl patch felixconfiguration default --patch='{"spec": {"bpfExternalServiceMode": "DSR"}}' # Check Calico Mode ./calicoctl get ippool -owide # Check IPTables Chain $ sudo iptables -t nat -S
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.