0. Controller의 기능 Auto Healing Auto Scailing Software Update Job 1.Template pod가 다운되면, replication안에 있는 template으로 pod를 새로 만들어주게 됨 template에 pod:v2에 대한 업데이트를 진행하고 , 기존에 연결되어 있는 pod을 다운시키고 새로 업그레이드 된 pod:v2를 생성 2.Replicas replicas의 개수만큼 pod의 개수가 관리되고, 그 pod가 삭제되면, replicas의 개수만큼 재생성해줌 repliacas의 개수가 늘어나면 그 수만큼 pod가 늘어나면서 scale out이 됨 replicas에 pod없이 개수만 지정하고, template을 만들면, replicas는 현재 pod가 없기 때..
0.이 오브젝트들을 쓰는 이유 클러스터안에는 여러 네임스페이스들을 만들 수 있고, 네임스페이스 안에는 여러 pod를 만들 수 있고, 한 네임스페이스안에서 클러스터 내부의 리소스 대부분을 사용하면, 다른 네임스페이스 안에 있는 파드 입장에선 더 이상 사용할 수 있는 자원이 없어서 문제가 발생함 이러한 문제를 해결하기 위해서 Resource Quota 가 존재하는데, 네임스페이스마다 최대 한계를 설정하여, 다른 네임스페이스에 있는 파드에 영향을 미치지 않게함 Resource Quota외에도 Limit Range를 설정하여 네임스페이스에 들어오는 범위를 설정가능(최소~최대) 1.Namespace 한 네이스페이스 안의 오브젝트들은 이름이 중복될 수 없음 다른 네임스페이스 안에 있는 자원들끼는 연결할 수 없음(P..
★configmap: 개발환경과 상용환경의 설정을 각각 다르게 하기 위해, 외부에서 관리하는 파일을 모아놓은 것 ★secret: 보안 관련 파일을 모아 놓은 것 1.Env (Literal) -데이터로 configmap에 상수를 넣음 -key:value -secret은 pod으로 주입될때 자동으로 디코딩되어 원래의 값이 보이게됨 -쿠버네티스에서 일반적인 오브젝트들은 쿠버네티스 DB에 저장이 되는데, secret은 메모리에 저장(secret을 많이 만들게 되면 용량상 시스템에 영향을 미치게 됨) 2.Env (File) -데이터로 파일을 configmap에 넣음 -바로 pod에 올리면 key가 file이름이 되니까, key를 새로 정의해서 content만 넣기 -파일을 configmap으로 만드는 것은 das..
1.emptyDir -컨테이너들끼리 볼륨을 공유하기 위해 사용됨 -예를 들어 container1이 웹서버고 container2가 백엔드 -volume은 pod생성시 만들어지고 삭제 시 없어짐 (volume에는 일시적인 사용목적에 의한 데이터만 저장하는게 좋음) 2.hostPath -pod들이 올려져 있는 node의 poth 사용 -각각의 pod들이 path를 공유하기 때문에, pod들이 죽어도 node안에 있는 데이터는 사라지지 않음 -그러나, 예를 들어 pod2가 재생성될 때, 원래 node에 생성될거라는 보장이 없음 (해결: 운영자가 node추가시마다 똑같은 path를 만들어서 직접 node에 있는 path끼리 mount를 걸어줌) *사전에 해당 node에 경로가 있어야 에러가 나지 않음 -각각의 노..
1.ClusterIP(type: ClusterIP) -service는 자신의 cluster IP가 있으며, pod과 연결되면 service의 ip를 통해서도 pod과 연결가능 -(pod의 ip는 재생성되면 변경되지 때문에 신뢰성이 떨어져서) -외부에서는 접근불가 -service가 트래픽을 분산시켜, pod에 연결함 1.인가된 사용자 2.내부 대쉬보드 3.Pod의 서비스상태 디버깅 2.NodePort(type: NodePort) -모든 node에 port할당 -1번 노드로 접속하더라도 2번 노드에 트래픽 전달 가능 -externalTrafficPolicy: Local 로 되어 있으면 해당 노드위에 pod에만 트래픽을 전달함 1.내부망 연결 2.데모나 임시 연결용 3.Load Balancer(type: Lo..
1.container : 하나의 독립적인 서비스 구동 -한 pod안에 여러 container가 있지만 port는 중복되지 않음 -한 pod당 IP 자동할당(시스템에 문제가 생기면 pod이 재생성되고, ip주소가 변경됨) 2.label: 목적에 따라 오브젝트들을 분리하고, 분리된 오브젝트들끼리 연결 -key: value로 이루어짐 (예를 들어, type: web) -type이 web인것만 보고싶으면 이 pod들만 service에 연결하여 보면 됨 3. node schedule: 2가지 방법이 있음 (1)직접 선택: pod을 만들 때 node를 선택(nodeSelector) (2)쿠버네티스가 자동 선택(request, limit) —> 스케줄러가 판단 -memory: 초과시 Pod 종료 시킴 -CPU: 초과..
Django 설치하기 pip3 install django Django 프로젝트 생성 django-admin startproject ★vscode 원격 연결 (1)terminal에서 설치 sudo yum install openssh-server && sudo systemctl start sshd.service && sudo systemctl enable sshd.service (2)VSCODE: Remote Development 확장팩을 설치후, Remote-SSH: Connect to Host.. Django app 생성 프로젝트폴더 안(manage.py 경로가 있는 곳)에서 다음 명령어를 실행한다 sudo python3 manage.py startapp
경로 정하기 mkdir project #폴더 name 생성 디렉토리안에 있어야 하는 파일 및 폴더 - Dockerfile - 프로젝트 폴더( ex react, django) project Dockfile django-app 이미지 생성 생성 명령어 sudo docker build . -t /: 이미지를 docker hub 에 업로드하려면 이때 이미지 이름을 로 설정하는게 좋다. 이미지 확인 sudo docker images 이미지 실행 실행 명령어 sudo docker run -p 8000:80 -tid -p는 포트 포워딩을 할 수 있는데, 실행시 8000번포트로 들어가면 80번 포트로 포워딩 된다는 뜻이다 실행 확인 sudo docker ps curl로 해당 서..
net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 에러해결 squid를 install 한 후 -docker.io 279 -docker.com 91 프록시 서버에 추가
이미 설치된 Docker 제거 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine Repo 정보를 사용할 수 있는 yum-utils 패키지 설치 sudo yum install -y yum-utils Docker repo 설치 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Docker 엔진 설치 sudo yum install docker-ce docker-ce-cli c..