향상 된 컨테이너 격리를 위한 컨테이너 런타임
https://github.com/nestybox/sysbox

crio나 containerd에 추가로 sysbox를 배포하여 컨테이너를 격리시키는 기술
NAME STATUS ROLES AGE VERSION
pps-26 Ready control-plane,master 579d v1.21.14
회사에 있는 서버를 써서 버전이 많이 낮긴 하지만.. 일단 해보자..
apiVersion: v1
kind: Pod
metadata:
name: ubu-bio-systemd-docker
annotations:
io.kubernetes.cri-o.userns-mode: "auto:size=65536"
spec:
runtimeClassName: sysbox-runc
containers:
- name: ubu-bio-systemd-docker
image: registry.nestybox.com/nestybox/ubuntu-bionic-systemd-docker
command: ["/sbin/init"]
restartPolicy: Never
kubectl apply -f sys.yaml
Error from server (Forbidden): error when creating "sys.yaml":
pods "ubu-bio-systemd-docker" is forbidden: pod rejected: RuntimeClass "sysbox-runc" not found
apply 하려고 하니까 에러가 난다..
⚡ root@pps-26 ~ kubectl label nodes pps-26 sysbox-install=yes
node/pps-26 labeled
⚡ root@pps-26 ~ kubectl apply -f https://raw.githubusercontent.com/nestybox/sysbox/master/sysbox-k8s-manifests/sysbox-install.yaml
serviceaccount/sysbox-label-node created
clusterrole.rbac.authorization.k8s.io/sysbox-node-labeler created
clusterrolebinding.rbac.authorization.k8s.io/sysbox-label-node-rb created
daemonset.apps/sysbox-deploy-k8s created
runtimeclass.node.k8s.io/sysbox-runc created

설치를 빼먹고 파드만 배포하려고 했던거 같아서 일단 설치를 해보자
kubectl get pods -A | grep sysbox
kube-system sysbox-deploy-k8s-6rxv4
kubectl apply -f sys.yaml
pod/ubu-bio-systemd-docker created
하고 보니까 pending으로 진행중
Sysbox can be installed in all or some of the Kubernetes cluster worker nodes, according to your needs.
문구가 github에 있는데 마스터에 taint 푸는 내 서버라 안되는거 같다...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 31s (x6 over 3m17s) default-scheduler 0/3 nodes are available: 3 node(s) didn't match Pod's node affinity/selector.