본문 바로가기

개발 및 운영/Kubernetes22

Kubernetes 에서 Node 죽었을 때 PV가 있는 파드가 스케쥴링 되지 않는 현상 Kubernetes Cluster 에서 Node 가 예기치 않게 죽었을 때, Node Status 는 NotReady 상태가 되고, 해당 Node 에 물린 Pod 들은 일정 시간이 지난 이후 다른 노드로 Re-schedule 되어 자동적으로 복구 될 수 있다. 하지만 rook-ceph 을 통해 PV 가 물린 Pod 는 이야기가 달라진다. Node 가 그냥 죽은 상태는 큰 문제가 되지 않지만, Split-brain 이나 Node suspend 상태 등으로 인해 NotReady 가 되었지만 이후에 다시 살아나서 Volume Write 가 이루어지는 경우에는 다른 파드가 떠있다면 충돌이 일어나 Volume 이 손상되게 된다. 이러한 것을 막기 위해 Volume 이 Unmount 되지 않았다면 다른 Pod 에서.. 2022. 12. 27.
RKE2 의 API 서버 접속 방법 (왜 127.0.0.1:6443 인가?) Kubernetes 의 kubelet 은 kube-apiserver 랑 통신한다. 그래서 control plane 노드가 여러개 있으면 Domain 이나 VIP 를 만들어서 Load Balancer 를 통해 살아있는 Control Plane 노드로 연결할 수 있도록 구현해 주어야 한다. 하지만 RKE2 를 Elemental 으로 설치했는데 고민이 생겼다. 이러한 Load Balancer 를 설정할 수 있는 방법이 없었기 때문이다. (RKE2 를 그냥 설치하면 server address 를 설정할 수 있지만 elemental 과 rancher 로 프로비저닝하면 자동으로 지정된다) 그래서 만약 첫번째로 프로비저닝된 control plane 노드가 죽으면, 다른 노드들은 어떻게 통신하지? 라는 물음이었는데, .. 2022. 10. 26.
EJBCA-CE Docker with HSM on Kubernetes ejbca-ee can be integrated with HSM. > https://github.com/Keyfactor/ejbca-containers/blob/master/hsm-integration/hsm-drivers/hsm-driver-softhsm/Containerfile However, registry.primekey.com is not accessible as it is a paid repository. So, I implement it using the open source pkcs11-proxy. See https://gist.github.com/jclab-joseph/973d06db6856a8e5cb851909fbc7268b And https://github.com/jc-lab/hsm-.. 2022. 10. 3.
rook-ceph 에서 Proxmox ceph 을 external cluster 으로 사용할 때 문제 rook-ceph 에서 proxmox 의 ceph 에 external cluster 으로써 연결 해 사용하려고 했다. 하지만 동작하지 않는다... 정확히는 Cluster 는 연결되지만 rados gateway 가 동작하지 않았다. (CephObjectStore) 아래와 같이 버전이 다르다고 하는데 사실 버전은 동일했다. ceph-object-controller: failed to reconcile CephObjectStore "rook-ceph-external/my-store". waiting for ceph monitors upgrade to finish. current version: 16.2.9-0 pacific. expected version: 16.2.9-0 pacific. will reconc.. 2022. 8. 10.
kata-containers 설치 1. modules 등록 & snap & loop 제거 (loop device 가 있으면 동작을 안한다. 나만 그런가..) # snap list # snap remove (...) # 모든 snap 제거 # apt remove snapd lxd-installer multipath-tools # rm /dev/loop* # cat /etc/containerd/config.toml # cd /usr/local/bin /usr/local/bin# ln -s /opt/kata/bin/kata-monitor /usr/local/bin# ln -s /opt/kata/bin/kata-runtime /usr/local/bin# ln -s /opt/kata/bin/containerd-shim-kata-v2 /usr/lo.. 2022. 6. 21.
[rook-ceph] external cluster 사용 시 attempt to determine ceph version for the current cluster image timed out 오류 external cluster로 설정하고 CephCluster 에 대한 health 는 성공적인데, 이후 CephBlockPool 생성 시 아래와 같은 오류가 발생하였다. E | ceph-block-pool-controller: failed to reconcile. failed to fetch ceph version from cephcluster "...": attempt to determine ceph version for the current cluster image timed out ceph version 을 가져오지 못한 것으로 보이는데... monitoring을 활성화해야 이를 해결할 수 있었다. 그런데 단순히 활성화 만으로는 안되구... 버그인지 모르겠는데 rolebinding도 해 주어야 한.. 2022. 1. 11.