본문 바로가기
반응형

Development/Docker&Kubernetes38

Docker Image export 방법 Image 를 export 하는 방법 ​ docker save [option] [tar filename] [image name] REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest fa5269854a5e 2 weeks ago 142MB docker save -o test.tar fa5269854a5e 실행중인 컨테이너를 export 하는 방법 ​ docker export [container name or containter ID] > [tar filename] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 791601bf0587 nginx:latest "/docker-entrypoint.…" 33 minutes ago.. 2022. 5. 11.
CKAD 자격증 취득! 지난달 CKA 자격증 취득에 이어서 CKAD 자격증도 따게 되었다. 이것도 작년에 사놓은 바우처가 올해 12월 까지 였는데 CKA 자격증 준비하면서 공부했으니 잊어버리기 전에 같이 해보는게 좋을것 같다는 생각을 했다. CKAD 를 먼저 본 분들의 후기를 보면 최근에 본 글들이 많이 없었다. 거의다 작년에 변경되기 전에 시험을 보신분들이 많았다. 일단 변경된 시험 범위는 아래 와 같다. CKA 와 CKAD 문제 구성의 차이점 - docker, heml CKA 준비할때에는 k8s 의 리소스를 생성하고 수정하는 것은 많이 연습을 해봤는데 docker 나 helm 까지는 많이 해보지는 않았다. 그래서 부랴부랴 udemy 강의에서 변경된 부분에 대한 강의만 다시 들어보았다. 강의와 연결된 실습도 크게 어려움없이 .. 2022. 5. 2.
[K8S] Command and Arguments in K8S K8S의 container 에 정의되는 args 와 command 에 대한 차이점은 다음과 같다. Docker image 빌드시에 ENTRYPOINT 와 CMD 를 정의 할 수 있다. ENTRYPONT : 컨테이너가 실행될 때 반드시 default 로 실행된다. 따라서 컨테이너가 수행될 때 변경되지 않을 실행명령은 ENTRYPOINT 로 정의하는게 좋다. CMD : 컨테이너 실행시 파라메터를 추가 하게 되면 추가된 파라메터를 실행시킨다. 이때 k8s 에서 정의하는 args 는 Docker 이미지의 CMD 에 바인딩 되고 command 는 ENTRYPOINT 에 바인딩 된다. 이름때문에 command가 CMD 에 바인딩된다고 착가하면 안된다. 2022. 4. 12.
CKA 자격증 시험보다가 한시간 넘게 국제 전화 한 이야기.... 험난하고 많은 일이 있었던 CKA 자격증 시험을 준비하는 과정과 시험 과정에서 발생했던 어이없는(?) 상황에 대해서 이야기 해보려한다. 이야기 순서는 다음과 같다. 1. CKA 시험 준비 2. 2번의 Fail. 3. 다시 바우처 구입과 재시험 & 시험봐야 하는데 Proctor는 어디에?? 4. 합격 후기 5. 남겨진 문제들 그럼 이야기를 시작해보자. 1. CKA 시험준비 지금이 2022년이고 어느덧 4월이다. 나는 바우처를 작년 5월에 구입을 했다. 올해도 똑같은 해택을 줄지는 모르겠지만 작년에 있었던 Virtual KubeCon 을 참석한 혜택으로 50% 할인 가격으로 CKA 바우처를 구입할수 있었다. 그리고 나도 CKA를 응시했던 많은 분들이 들었던 Udemy 강의(Certified Kubernete.. 2022. 4. 9.
[k8s] Network Policy namespaceSelector Network Policy 에 관한 설정들 참고할 만한것 몇가지 작성해본다. 아래 두개의 NetworkPolicy 는 아래 조건을 만족한다. test1 네임스페이스에서 pod 끼리는 전부 호출 가능하다 test1 네임스페이스에서 test2로만 호출가능하며 포트는 80 포트를 사용한다. apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: np namespace: test1 spec: podSelector: {} policyTypes: - Egress egress: - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: test2 - ports: - port: 80 pr.. 2022. 3. 28.
[Docker] 컨테이너와 외부 디렉토리 연결하기 docker 실행시 컨테이너 내부에서 컨테이너 외부 파일을 연결할수 있는 방법이 있다. docker run 실행시 -v [호스트경로]:[컨테이너경로] 를 추가해주면 호스트 경로와 컨테이너 경로가 연결되게 된다. 한가지 중요한 점은 호스트 경로의 상태가 컨테이너 경로에 덮어써진다는 것이다. ➜ docker docker run --name nginx-mounts -d -p 8081:80 -v /Users/Workspaces/docker:/usr/share/nginx/html nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx 7d63c13d9b9b: Pull complete 15641ef07d80: Pull .. 2021. 11. 16.
[Docker] docker container ip 확인방법 1. docker inspect container_id 명령어를 치면 굉장히 많은 정보를 확인할 수 있다. 그래서 grep 으로 조회하면 좀 수월하다. docker inspect container_id | grep IP "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "192.168.0.1", "IPPrefixLen": 16, "IPv6Gateway": "", "IPAMConfig": null, "IPAddress": "192.1.. 2021. 11. 15.
[Docker] history 명령어 history 명령어를 통해서 이미지가 어떤 과정을 거쳐 생성되었는지 확인해볼수 있다. 아래와 같이 nginx 의 latest 이미지와 stable 이미지에 대한 내역을 비교해볼수 있다. root@myserver-001:~# docker history nginx:stable IMAGE CREATED CREATED BY SIZE COMMENT c8d03f6b8b91 4 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B 4 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0B 4 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B 4 weeks ago /bin/sh -c #(nop) ENTRYPOI.. 2021. 11. 12.
[k8s] drain 명령어 kubectl drain 노드명 - drain 명령어를 사용하게 되면 해당 노드의 pod 를 다른 노드로 옮긴다. - 실제로는 pod 를 옮기는게 아니라 다른 노드에 재 생성한다. - 데몬셋을 무시하고 진행할 경우에는 --ignore-daemonsets 옵션을 사용한다. 아래와 같이 myserver-002와 myserver-003 에 pod 가 각각 deploy 되어있다. root@myserver-001:~# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rollout-nginx-74695fdcd-5trw5 1/1 Running 0 3m55s 10.32.0.2 myserver-002 r.. 2021. 11. 4.
taint, cordon 의 차이점은? cordon 지정한 노드에 Pod 를 스케줄링 하지 않는다. taint 지정한 노드에 Pod를 스케줄링 하지 않지만 tolerations 설정을 통해 스케줄링이 가능하다. 2021. 11. 4.
[K8S] static pod 에 대해서 몇가지. static pod 에 대해서 알아보다가 몇가지 기억할 만한 것들을 적어본다. - master node 의 /etc/kubernetes/manifests 하위에는 yaml 파일들이 있는데 이 yaml 파일들은 마스터 노드가 실행시에 자동으로 생성되는 static pod 들이다. 보통 etcd, api-server등이 있다. - node에 생성된 static pod 를 지우기 위해서는 해당 노드에 가서 지워야 한다. 지우기 위해서는 노드 안에 있는 kubelet의 config 파일(/var/lib/kubelet/config.yaml) 에 있는 staticPodPath 값을 찾아서 path 위치에 있는 yaml 파일을 지워야 한다. kubectl delete pod 로 지우면 다시 생성된다. - 조회는 가능.. 2021. 2. 4.
[K8S] apiserver 에 SAN(Subject Alternative Name) 추가 Lens 라는 툴을 사용해 보려고 host pc 에서 VM 에 있는 K8S 를 연결시켜보려고 시도를 해봤다. 2021/01/05 10:08:52 http: proxy error: x509: certificate is valid for 10.96.0.1, 10.0.1.7, not [ip] 그런데 위와 같은 에러 메세지가 나면서 연결이 되지 않았다. 위에 [ip] 는 host pc 의 ip 이다. Google에서 찾아보니 인증서에 나의 로컬 ip 가 들어가 있지 않아서 라는 이야기가 나왔다. 그럼 현재 k8s 에 있는 apiserver 인증서 내용을 살펴보자. openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text 위와 같이 입력하면 apiserver.crt 파.. 2021. 1. 5.
728x90
반응형