[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을 사용해서 노드를 선택할 때의 몇 가지 제한은 다음과 같다. 만약 명명된 노드가 없으면, 파드가 실행되지 않고 따라서 자동으로 삭제될 수 있다. 만약 명명된 노드에 파드를 수용할 수 있는 리소스가 없는 경우 파드가 실패하고, 그 이유는 다음과 같이 표시된다. 예:..