TLS 란? - Transport Layer Security (전송계층 보안) - 어플리케이션 계층의 데이터를 암호화 / 복호화 - TCP 443 TLS의 특징 1. 암호화 ( Encryption ) 2. 인증 ( Authentication ) 3. 무결성 ( Integrity ) Certificates Public key Private key server.crt server.pem client.crt client.pem server.key server-key.pem client.key client-key.pem
CNI 의 뜻 컨테이너 네트워크 인터페이스의 약자로 CNI이다. CNI 의 목적 컨테이너간의 네트워크 제어 -> 컨테이너 런타임과 오케스트레이션 툴(ex k8s) 사이의 네트워크 계층을 공통적으로 구현하기 위해 만들어진 공통 인터페이다 -> 위의 목적을 구현하기 위해 다양한 CNI 가 존재한다. kubernetes에서 CNI 설정 /etc/cni/net.d 에서 cni를 설정한다. default로는 kubenet이라는 아주 제한된 기능의 cni를 제공하지만, 이 cni로는 기능이 충분하지 않으므로 third party의 CNI를 사용한다. CNI 별 기능 비교적 많은 기능을 제공하는 cni 플러그인에는 Calico나 Weave Net이 있다. 그리고 기능이 별로 없는 cni플러그인은 flannel이 있다..
한 개의 쿠버네티스 클러스터에는 다음과 같이 Master 노드를 포함하여 여러개의 Worker 노드로 구성되어 있다. 공식 홈페이지의 구성도는 다음과 같다. 전체 Cluster의 리소스를 직접적으로 모니터링 하는 것보다는 각각 노드 레벨에서의 할당가능한 자원량을 모니터링하는 것이 정확할 수 있다 . 파드는 자신과 노드의 여러가지 조건에 따라서 특정 노드에 스케쥴링 되기 때문이다. 이때 파드가 고려하는 것은 리소스에 대한 개별 및 총체적 요구 사항, 하드웨어/소프트웨어/정책적 제약, 어피니티(affinity) 및 안티-어피니티(anti-affinity) 명세, 데이터 지역성, 워크로드-간 간섭, 데드라인 등이 있다. Pod 는 Node의 모든 자원을 활용할 수는 없다. Node 는 다음과 같이 4가지로 자..
내가 준비했었던 CKA의 연습문제 그리고 실제시험에는 다음과 같은 유형의 문제가 나온다. 이 글에서는 이 문제를 해결하면서 쿠버네티스의 인증에 대해서 풀어볼 것이다. Create a new user called john. Grant him access to the cluster. John should have permission to create, list, get, update and delete pods in the development namespace . The private key exists in the location: /root/CKA/john.key and csr at /root/CKA/john.csr. Important Note: As of kubernetes 1.19, the Cert..
vm에 nat, nat network, host only 등의 네트워크 어댑터를 이용하여 네트워크 설정을 하고 master node를 셋팅하면 master node의 internal ip가 private ip로 나올 것이다. 이 경우에는 kubeadm join을 했을 때 certificate is valid for 10.96.0.1, 10.0.2.15, not 라는 에러가 나올 것이다. (물론 이전에 master node의 apiserver가 그 공인ip에서 포워딩되도록 했다는 전제이다.) 왜냐하면 master node의 kubeadm init을 내부ip로 했기 때문이다. 해결방법은 certification이 worker node에서 추가하려는 master node의 공인 ip에 valid되게 만드는 것..
Prequisite OS (+ network) Docker 스왑 오프 swapoff -a Kubernetes 레포지토리 구성 $ sudo apt-get update $ sudo apt-get install -y apt-transport-https ca-certificates curl $ sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ cat
Prequisite OS (+ network) Docker 스왑 오프 swapoff -a Kubernetes 레포지토리 구성 $ sudo apt-get update $ sudo apt-get install -y apt-transport-https ca-certificates curl $ sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ cat
kubectl get pods -l app=myapp
docker search code 라고 이미지 검색을 하면 이미지 중에 codercom/code-server 이 있는데 이 이미지를 pull 받는다. docker pull codercom/code-server:latest 그리고 나서 이 이미지를 활용해서 pod를 만드는데 나는 deployment를 만들었다. 한가지 빠뜨리면 안되는 것은 퍼시스턴트 볼륨이 필요하다는 것이다. apiVersion: apps/v1 kind: Deployment metadata: name: ####### labels: app: ####### namespace: ####### spec: replicas: 1 selector: matchLabels: app: ####### template: metadata: labels: app:..