
CNI로 cilium을 사용하는데 설치할 때 K8S_SERVICE_HOST로 192.168.1.120를 할당해주었다.
마스터 1번 pc의 고정IP 인데 해당 노드가 죽어버리니 전체 노드가 통신이 안되는 상황이 발생했다.
- 클러스터는 HA 구성이지만, 연결 설정은 Single Point of Failure(단일 장애점)
kube-vip 설치

- master 중 1개에 VIP를 할당함
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: kube-vip
namespace: kube-system
spec:
selector:
matchLabels:
name: kube-vip
template:
metadata:
labels:
name: kube-vip
spec:
hostNetwork: true
serviceAccountName: kube-vip # kubectl apply -f https://kube-vip.io/manifests/rbac.yaml | RBAC 적용 후 이 이름이 반드시 있어야 함
# --- master node 선택 ---
nodeSelector:
node-role.kubernetes.io/control-plane: "true"
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
# ---------------------------
containers:
- name: kube-vip
image: ghcr.io/kube-vip/kube-vip:v0.8.0
args: ["manager"]
env:
- name: vip_arp
value: "true"
- name: vip_interface
value: "enp0s18" # eth0 대신 enp0s18 사용 - altername 만 인식...
- name: vip_address
value: "192.168.1.200"
- name: vip_cidr
value: "32"
- name: cp_enable
value: "true"
- name: cp_namespace
value: "kube-system"
- name: vip_leaderelection
value: "true"
- name: port
value: "6443"
securityContext:
capabilities:
add: ["NET_ADMIN", "NET_RAW"]
연결 오류가 난다면!
msg="failed to start: Get \"https://192.168.1.200:6443/api/v1/namespaces/kube-system\\": tls: failed to verify certificate: x509: certificate is valid for 10.43.0.1, 127.0.0.1, 192.168.1.120, 192.168.1.130, 192.168.1.140, ::1, not 192.168.1.200" subsys=cilium-operator-generic
- 파일 생성 및 편집
- 내용 작성 파일 안에 아래 내용을 입력하고 저장하세요.
- K3s 서비스 재시작
💡 왜 이렇게 하나요?
- 인증서 갱신: K3s는 재시작될 때
/etc/rancher/k3s/config.yaml파일이 있으면 그 내용을 읽습니다.tls-san에 추가된 IP(.200)를 인식하고, API 서버가 사용하는 SSL 인증서에 이 IP를 포함시켜 다시 구워냅니다.