본문 바로가기

가상화/Kubernetes

(32)
[Docker] Priviate registry 구성 #2 - TLS 구성 개요 Registry 서버는 디폴트로 HTTP 통신을 하여 이미지를 업로드 및 다운로드를 한다. 근데 클라이언트는 기본적으로 이미지를 다운로드 할때 HTTPS를 이용한다. 이럴 경우 클라이언트의 daemon.json 파일에 Registry 주소를 추가해는 약간의 번거러움이 있을 뿐만아니라, 안전한 통신을 위해서라도 HTTPS를 추천한다. 구성환경 Docker 19.03, Regsitry 2.7.1 참조 : https://docs.docker.com/registry/deploying/ 구성절차 1. Registry 설치 2. 인증서 생성(사설 인증서) 3. TLS 인증서를 사용해서 Registry 컨테이너 시작 4. 이미지 업로드, 다운로드 테스트 1. Registry 설치 shell> docke pull..
[Docker] Priviate registry 구성 #1 - 설치 개요 구성환경 docker 1.6+, registry 2.7.1 구성절차 1. registry 이미지 다운로드 2. 로컬 레지스트리 실행 3. 이미지 업로드 4. 이미지 다운로드 1. Registry 이미지 다운로드 Usage: docker pull rgistry:2.7.1 - 샘플 출력 shell> docker pull registry:2.7.1 2.7.1: Pulling from library/registry 486039affc0a: Pull complete ba51a3b098e6: Pull complete 8bb4c43d6c8e: Pull complete 6f5f453e5f2d: Pull complete 42bc10b72f42: Pull complete Digest: sha256:7d081088e4..
[kubernetes] TroubelShooting 개요 구성환경 예제 1. - 증상 1 pod의 이벤트에 node.kubernetes.io/disk-pressure로 표시되고 pod가 pending상태로 있음 shell> kubectl describe pod nginx-deployment-57f4c486cc-8kkhm Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 40s (x7 over 7m25s) default-scheduler 0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate. - 증상..
[Docker] Image Build 개요 구성환경 Docker-19.3.0, CentOS 6.7 참조 : https://docs.docker.com/engine/reference/builder/ 예제 1) apache httpd 이미지 빌드 1. image 다운로드 shell> docker pull httpd:2.4.41 2. Dockerfile 편집 FROM httpd:2.4.41 MAINTAINER admin@hoya.com WORKDIR /usr/local/apache2 COPY index.html htdocs/index.html ADD zip.tar.gz htdocs/ FROM : 이미지 MAINTAINER : 새 레이어의 Author 필드 설정 WORKDIR : 새 레이어의 디렉토리로 이동 RUN : RUN 명령은 현재 이미지 위..
[kubernetes] 웹 UI(대시보드) 개요 대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된 애플리케이션을 트러블슈팅 할 수 있으며, 클러스터 리소스들을 관리할 수 있다. 대시보드를 통해 클러스터에서 동작중인 애플리케이션의 정보를 볼 수 있고, 개별적인 쿠버네티스 리소스들을(예를 들면 디플로이먼트, 잡, 데몬셋 등) 생성하거나 수정할 수 있다. 예를 들면, 디플로이먼트를 스케일하거나, 롤링 업데이트를 초기화하거나, 파드를 재시작하거나 또는 배포 마법사를 이용해 새로운 애플리케이션을 배포할 수 있다. 또한 대시보드는 클러스터 내 쿠버네티스 리소스들의 상태와 발생하는 모든 에러 정보를 제공한다. 구성환경 Kubernetes v1.17.4, das..
[kubernetes] kubeadm을 사용하여 고 가용성(HA) 클러스터 만들기 개요 kubernetes에서 HA를 구성하는 방법으로 stacked etcd, external etcd 두가지 방법이 있다. 그림 1의 stacked etcd는 control plane node에서 etcd가 작동하는 반면, 그림 2의 external etcd는 control plane node와 etcd가 다른 노드에서 작동한다. HA를 구성하기 위해서는 쿼럼이 과반수를 초과해야만 하기 때문에 최소 3대 이상(3,5,7,...)의 노드를 필요로 한다. 이번 시간에는 stacked etcd 를 구성하는 방법에 대해 알아보고자 한다. 구성환경 Ubuntu 18.04.1, Docker 19.03.8, Kubernet v1.17.4 사전 준비 Docker, Kubernet이 미리 설치 되어 있어야한다. 로드 ..
[kubernetes] 설치 개요 CentOS 7에서 kubernetes(k8s) 설치 구성환경 kubernetes v1.17.0, CentOS 7.6 설치 1. 사전 준비(control-plane node, worker node) 1.1 Docker-ce 설치 1.2 의존성 패키지 설치 - conntrack, socat 1.3 브리지 된 IPv4 트래픽을 iptables 체인으로 전달하기 위해 커널 파라메터 수정 /etc/sysctl.conf 파일에 아래 두라인 추가 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 shell> sysctl -p => 추가된 커널파라메터 적용 1.4 swap off shell> swapoff -a 또는 /e..
[Docker] swarm 모드에서 컨테이너 rebalance 개요 swarm에 컨테이너 생성시 swarm manager는 자동으로 각 노드에 내부 알고리즘을 이용하여 컨테이너를 배포한다. 그러나 운영중 worker 노드가 추가(삭제) 또는 service생성시 특정 노드가 unusable시 의도치 않게 특정 노드에 컨테이너가 집중될수 있다. 이러한 문제를 해결하기 위해 docker는 rebalance 기능을 이용하여 컨테이너를 각 노도에 재 배포할 수 있다. 구성환경 docker-ce-19.03.5 / CentOS 7.6 syntax) docker service update --force serviceName 예) 2노드(총 6개의 컨테이너)로 이루어진 swarm에 1개의 노드를 swarm에 추가, rebalance 실행후 각 노드에 컨테이너가 재 배포 되었는지 확..