Docker run command 명령어 옵션
·
Docker
docker run default formatGeneral form docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]--nameAssign name컨테이너를 제어할 경우 매번 컨테이너 id를 기억하기 어렵기에 해당 옵션을 통해 컨테이너에 이름을 부여해준다.$ docker run --name test -d nginx:alpine4bed76d3ad428b889c56c1ecc2bf2ed95cb08256db22dc5ef5863e1d03252a19 $docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4bed76d3ad42 nginx:alpine "/docker-entrypoint.…" 1 se..
Docker로 MySQL 설치하는 법
·
Docker
도커 설치 확인$ docker -v Docker version 24.0.6, build ed223bcpull mysqldocker hub (mysql)도커 허브에서 현재 mysql 이미지를 확인할 수 있다.아래 명령어를 통해 mysql 이미지를 pull한다. (버전 태그 지정 안할 시 latest 버전)$ docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysqlce92cb084937: Pull complete2303f4a62c55: Pull completed763704225c6: Pull completed056028b9c18: Pull complete69b1500def33: Pull complete065a61ce0ce9: P..
[Docker] 도커 컨테이너 실행 이후 localhost 접속 실패 해결
·
Docker
도커 컨테이너 코틀린 스프링 부트 환경을 배포하기 위해 도커 파일, 도커 컴포즈 파일 생성 이후 테스트를 위해 localhost:8080으로 접속을 했으나 계속해서 접속이 실패했다. 서버측이나 도커에 아무런 로그도 안떠서 대략 난감했다....! server: port: 8080 address: 127.0.0.1 아 근데 application.yml에 위와 같이 정의되어 있었다;; server.address를 127.0.0.1로 설정하면, 애플리케이션이 오직 로컬호스트(즉, 그 자체 컨테이너)에서만 접근 가능하도록 제한된다. Docker 컨테이너에서 실행되는 애플리케이션은 호스트 시스템(예: 로컬 머신)의 네트워크를 통해 접근해야 하므로, 이 설정은 외부에서의 접근을 차단하게 된다 ㅠㅠ Docker 환경에..
쿠버네티스 로깅
·
Docker
Volume TypeFileStorageBlockStorageObjectStorage로깅 쿠버네티스에서 돌아가는 로그 관리Service Pipeline - 별도의 플러그인 설치 후 모니터링 관련 파드가 생기고 이 파드들이 각각의 노드에서 로그를 가져 수집 서버에 모으고 이걸 ui를 통해 사용자에게 보여짐Core Pipeline - 파드에 쌓여지는 로그 1. Basic Logging Construction 1-1) Deployment 생성apiVersion: apps/v1
kind: Deployment
metadata:name: app-log
spec:selector:matchLabels:type: app
 template:metadata:label..
쿠버네티스 네트워킹
·
Docker
Service Network Pod Network 1-1) Pause Container apiVersion: v1 kind: Pod metadata:name: pod-pause spec:nodeSelector:kubernetes.io/hostname: k8s-node1 containers: - name: container1 image: kubetm/p8000 ports: - containerPort: 8000 - name: container2 image: kubetm/p8080 ports: - containerPort: 8080 Pause Container 확인 docker ps | grep pod-pause Pause Container 인터페이스 확인 docker ps | grep pod-pause d..
쿠버네티스 컴포넌트
·
Docker
쿠버네티스는 한 대의 마스터와 여러 대의 워커 노드들로 구성마스터- 쿠버네티스 주요 기능 담당 컴포넌트kube-apiserverAPI 서버는 쿠버네티스 API를 노출하는 쿠버네티스 컨트롤 플레인 컴포넌트이다. API 서버는 쿠버네티스 컨트롤 플레인의 프론트 엔드이다.쿠버네티스 API 서버의 주요 구현은 kube-apiserver 이다. kube-apiserver는 수평으로 확장되도록 디자인되었다. → 즉, 더 많은 인스턴스를 배포해서 확장할 수 있다. 여러 kube-apiserver 인스턴스를 실행하고, 인스턴스간의 트래픽을 균형있게 조절할 수 있다.etcd모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 일관성·고가용성 키-값 저장소.kube-scheduler노드가 배정되지 않은 새로 생..
쿠버네티스 스토리지
·
Docker
파드에서 데이터를 안정적으로 저장하는 방식hostPath클라우드 서비스 방식1. FTP Server 구축1-1) NFS 패키지 다운 및 설치설치yum -y install nfs-utils rpcbind
systemctl start rpcbind
systemctl start nfs-server
systemctl start rpc-statd
systemctl enable rpcbind
systemctl enable nfs-server확인systemctl status nfs-server1-2) 공유 폴더 생성 및 설정공유 폴더 생성mkdir /share-data
chmod 777 /share-datavi /etc/export..
[쿠버네티스] Node Scheduling
·
Docker
nodeName nodeName은 어피니티 또는 nodeSelector보다 더 직접적인 형태의 노드 선택 방법이다. nodeName은 파드 스펙의 필드 중 하나이다. nodeName 필드가 비어 있지 않으면, 스케줄러는 파드를 무시하고, 명명된 노드의 kubelet이 해당 파드를 자기 노드에 배치하려고 시도한다. nodeName은 nodeSelector 또는 어피니티/안티-어피니티 규칙보다 우선적으로 적용(overrule)된다. nodeName을 사용해서 노드를 선택할 때의 몇 가지 제한은 다음과 같다. 만약 명명된 노드가 없으면, 파드가 실행되지 않고 따라서 자동으로 삭제될 수 있다. 만약 명명된 노드에 파드를 수용할 수 있는 리소스가 없는 경우 파드가 실패하고, 그 이유는 다음과 같이 표시된다. 예:..
[쿠버네티스] Qos 클래스-Guaranteed, Burstable, BestEffort
·
Docker
QoS 클래스 Why? Node에 Pod가 3개 있고 균등하게 자원 배분을 하고 있다고 가정 Pod 1에서 추가적으로 리소스를 더 사용해야 하는 상황 -> App의 중요도에 따라 다른 Pod를 다운시키고 할당시키기 위해 쿠버네티스는 Qos 클래스 지원 QoS 클래스 종류 쿠버네티스가 파드를 생성할 때, 파드에 다음의 QoS 클래스 중 하나를 할당한다. Guaranteed Burstable ( 두 번째로 다운) BestEffort (제일 먼저 다운) Guaranteed QoS 클래스가 할당되는 파드 생성 파드에 Guaranteed QoS 클래스 할당을 위한 전제 조건은 다음과 같다. 파드 내 모든 컨테이너는 메모리 상한과 메모리 요청량을 가지고 있어야 한다. 파드 내 모든 컨테이너의 메모리 상한이 메모리 ..
[쿠버네티스] livenessProbe, readinessProbe
·
Docker
Probe 프로브 종류 kubelet은 실행 중인 컨테이너들에 대해서 선택적으로 세 가지 종류의 프로브를 수행하고 그에 반응할 수 있다. livenessProbe 컨테이너가 동작 중인지 여부를 나타낸다. 만약 활성 프로브(liveness probe)에 실패한다면, kubelet은 컨테이너를 죽이고, 해당 컨테이너는 재시작 정책의 대상이 된다. 만약 컨테이너가 활성 프로브를 제공하지 않는 경우, 기본 상태는 Success 이다. readinessProbe 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타낸다. 만약 준비성 프로브(readiness probe)가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. 준비성 프로브의 초기 지연 이전의 기..