본문 바로가기
  • 오늘처럼

Kubernetes33

Kubernetes Pod Infra container (pause container) Container 와 Pod 쿠버네티스로 클러스터링 된 노드에서, docker 나 contained 의 명령어를 이용하여 컨테이너를 조회하면 파드에 대한 컨테이너외에 추가 다음과 같은 컨테이너들이 존재함을 알 수 있다. [root@localhost]# ctr --namespace k8s.io containers list CONTAINER IMAGE RUNTIME b17bab258...b27 nginx:v1.11.2 io.containerd.runc.v2 c4e93ac4f...0e3 calico-kube-controllers:latest io.containerd.runc.v2 cc775ac0a...b8e calico-node:latest io.containerd.runc.v2 ... ea76c4e66..... 2023. 1. 10.
Kubernetes 와 Seccomp Kubernetes 에서의 seccomp docker 와 마찬가지로, kubernetes 또한 어플리케이션이 모든 시스템 함수에 대한 권한을 갖는 걸 막기 위하여, seccomp 필터를 사용할 수 있다. 여기서는 docker 와 비교되는 kubernetes 의 seccomp 사용에 대해 확인해본다. 먼저 docker 가 default seccomp profile 을 이용하여 시스템 함수를 필터링 하는 결과를 확인해 보기 위해 다음의 오픈소스를 이용한다. genuinetools/amicontained 컨테이너에 대한 인스펙션 툴로 아래와 같이 사용할 수 있다. # docker run --rm -it r.j3ss.co/amicontained amicontained Container Runtime: not-f.. 2022. 9. 23.
Kubernetes 인그레스(Ingress) 1. Ingress 의 역할 Kubernetes 인그레스(Ingress)에 대하여 알아보기 위해, 먼저 웹 서비스를 kubernetes 클러스터에 배포하는 시나리오를 가정해보자. 웹서버를 개발하여 배포/운영하는 사용자는, 소스 코드를 작성하고 빌드 후에 도커 이미지를 빌드하여 파드로 구성한다. Persistent layer(영속 영역)의 처리를 위하여, 데이터베이스가 필요하며 이 또한 클러스터 안에 파드로 구동한다. 클러스터 내부에서 web service 파드가 database 파드에 접근하기 위하여, database 파드를 가리키는 서비스를 ClusterIP 타입으로 생성한다. ClusterIP는 클러스터 내부 IP로 노출되는 서비스 타입으로 클러스터 안에서만 접근할 수 있으며, kubernetes 서.. 2022. 9. 5.
Kubernetes package binary 파일 정합성 확인하기 Kubernetes 설치에 필요한 패키지들은 다음의 공식 github 페이지에서 다운로드가 가능하다. https://github.com/kubernetes/kubernetes/releases Releases · kubernetes/kubernetes Production-Grade Container Scheduling and Management - kubernetes/kubernetes github.com 바이너리 파일은 인터넷 서버에 위치하여 사용자는 브라우저 다운로드나 curl, wget 등의 os tool 로 다운로드 받을 수 있다. 그런데 이렇게 네트워크 망을 통해 다운로드를 받을 때 중간에 공격자에 의해서 파일이 변조 될 수 있다. 변조 된 파일로 설치한 kubernetes 클러스터에는 의도되지 .. 2022. 7. 25.
Kubectl 명령어의 Proxy, Port-Forward 기능 Kubernetes Cluster 에서 수행되는 모든 작업은 kube-api server 에 의해서 이루어진다. 그렇기에 사용자는 kube-api server와 통신하기 위해 다음의 2가지 방식을 사용한다. kubectl client tool 을 사용하여 kube-api server 와 상호작용(interaction) curl 명령을 사용하여 kube-api server 에 REST API 통신 여기서 1번째 방식인 kubectl 클라이언트 툴을 사용할 경우, 별도의 authentication 이나 authorization 에 해당하는 설정을 할 필요가 없다. 이미 사용자 홈 디렉토리(root 유저일 경우 /root/.kube)에 config 설정 파일이 있고, kubectl 명령이 수행 될 때 자동으로.. 2022. 7. 15.
Kubelet authenticatoin/authoziation Kubernetes cluster 에서 worker node 는 master node 에 있는 controlplane 인 kube-api server 와 통신하여 클러스터를 구성하게 된다. 이 때 노드에서는 kubelet 프로세스가 이 작업을 수행하는데, 여기에서는 kubelet 의 역할과 kubelet 에 대한 authentication(인증) / authorization(권한 관리) 방법에 대하여 알아보고 kubelet 과 worker 노드를 안전하게 지키기 위하여 권장되는 방법을 확인해본다. 1. kubelet 의 역할 먼저 kubelet 은, kubeadm 등의 도구와 함께 사용되어, kubernetes cluster 에 worker 노드를 등록해주는 역할을 한다. 정상적으로 등록이 된 후 kub.. 2022. 7. 14.