본문 바로가기
728x90
반응형

분류 전체보기320

[Kubernetes] Deployment ▣ Deployment 디플로이먼트(Deployment)는 쿠버네티스에서 상태가 없는(stateless) 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러입 니다. 쿠버네티스가 처음 등장했을 때는 Replication Controller에서 앱을 배포했는데 최근에는 디플로이먼트를 기본적인 앱 배포에 사용합니다 Stateless Application이란? 클라이언트와 서버의 연결 구조에서 불필요한 상태의 반영을 위한 데이터나 리소스가 사용되지 않는 형태의 서비스 구조 파드와 레플리카셋은 '이력'이라는 개념이 없기 때문에 릴리스 후에 변경이 없는 애플리케이션을 관리하는데 적합합니다. 디플로이먼트는 이름처럼 배포 기능을 세분화 한 것으로 파드와 레플리카셋에 버전 관리 기능을 추가한 것이라고 생각하 면 이해가 쉽.. 2023. 5. 16.
[Kubernetes] ReplicaSet ▣ ReplicaSet 레플리카셋은 클러스터 안에서 움직이는 파드의 수를 유지하는 장치입니다. 클러스터의 파드의 실행을 항상 안정적으로 유지하는 것을 목표 로 명시된 파드 개수에 대한 가용성을 보증하는데 사용됩니다. 만약 애플리케이션 오류나 노드 장애 등으로 파드가 정지된 경우 레플리카셋 이 자동으로 새로운 파드를 시작합니다. 레플리카셋은 labelSelector의 조건에 따라 파드를 검색하여 가동 중인 파드의 수가 매니페스트 파일의 replicas의 수와 일치하는지 아닌지를 확 인합니다. 만약 가동중인 파드의 수가 부족한 경우 새로 파드를 추가하고, 파드의 수가 많을 때는 여분의 파드를 정지시킵니다. 따라서 가동 중 인 애플리케이션의 파드 수를 변경하고 싶을 때는 레플리카셋의 replicas의 값을 수.. 2023. 5. 16.
[Kubernetes] kubectl kubectl [command] [ type] [name] [flages] command : 자원에 실행하려는 동작. create, get, delete등을 사용할 수 있습니다. Type : 자원 타입입니다. pod, service, ingress등을 사용할 수 있습니다. NAME : 자원이름입니다. FLAG : 부가적으로 설정할 옵션을 입력합니다. kubectl 은 기본적으로 $HOME/.kube/config 파일에서 클러스터, 인증, 컨텍스트 정보를 읽어들입니다. 이러한 클러스터 구성 정보를 kubeconfig라고 칭합니다. 클러스터에서 사용할 수 있는 자원들은 kubectl api-resources 명령으로 확인할 수 있습니다. SHORTNAMES 항목(자원의 단축 이름), APIGROUP 항목(함.. 2023. 5. 12.
[Kubernetes] Cluster 전체구조 쿠버네티스의 클러스터의 전체구조 쿠버네티스는 크게 오브젝트(Object) 와 오브젝트를 관리하는 컨트롤러(Controller)로 나눕니다. 사용자는 템플릿(Template) 등으로 쿠버네티스에 자원의 “바라는 상태(Desired state)”를 정의하고, 컨트롤러는 바라는 상태와 현재 상태가 일치하도록 오브젝트들을 생성/삭제합니다. 오브젝트에는 파드(pod), 서비스(service), 볼륨(volume), 네임스페이(namespace) 등이 있습니다. 컨트롤러에는 레플리카세트(ReplicaSet), 디플로이먼트(Deployment), 스테이트풀세트(StatefulSet), 데몬세트 (DaemonSet), 잡(Job) 등이 있습니다 "Kubernetes Master"는 마스터 노드(Master Node)에.. 2023. 5. 12.
[Kubernetes] 쿠버네티스 cluster 구성/ reset Kubernetes Cluster 해제하기 # sudo kubeadm reset => 클러스터 해제 명령어 Kubernetes Cluster 구성하기 1. master에서 설정 # sduo Kubeadm init --pod-network-cidr=10.244.0.0/16 토큰이 있어야지 node들에 연결할 수 있다. => 그림2의 빨간 박스부분을 따로 복사해 놓아야 함 2. CNI 설치(Master에서 설치) # mkdir -p $HOME/.kube # sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config ~/.bashrc kube-system 은 기본적으로 시스템에 필요한 것들을 pod로 구성되어있습니다. ▣ 쿠버네티스 기본 명령어 # kubectl ge.. 2023. 5. 12.
[Kubernetes] 쿠버네티스 쿠버네티스(Kubernetes)란? Kubernetes, 또는 쿠버네티스, 또는 간단히 "큐브 (kube)"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼을 뜻합니다. 플랫폼에서는 컨테이너화된 애플리케이션을 배포하고 확장하는 데 수동 프로세스가 필요하지 않습니다. 즉, Linux 컨테이너를 실행하는 호스트 그룹을 함께 클러스터링할 수 있으며 쿠버네티스를 통해 이러한 클러스터를 쉽고 효율적으로 관리할 수 있습니다. Cluster = Domain master= Domain Controller(Controller) => kubernetes의 플랫폼으로 관리하는 PC node01 = Domain Memeber Computer(Container 실행되는 PC) node02 = Domain Memeber .. 2023. 5. 12.
[Docker] 컨테이너 이미지 만들기, dockerfile 생성,컨테이너 개조하기 컨테이너로 이미지 만들기 docker run --name httpd01 -d -p 8092:80 httpd docker exec -it httpd01 /bin/bash $ mkdir /testing $ exit docker commit httpd01 httpd01_image docker image ls docker run --name httpd02 -d -p 8093:80 httpd01_image docker exec -it httpd02 /bin/bash ls / Dockerfile 스크립트로 이미지 만들기 - Dockerfile 스크립트를 작성하고 이 스크립트를 빌드해 이미지를 만드는 방법이다. - Dockerfile 스트립트에는 토대가 될 이미지나 실행할 명령어 등을 기재한다. 편집은 메모장 같은 .. 2023. 5. 11.
[Docker] 컨테이너 연동( 호스트간 파일 복사, 볼륨 마운트) 컨테이너와 호스트 간에 파일 복사하기 항목 값 윈도우 원본 경로 C:\Users\사용자명\Documents\index.html macOS 원본 경로 /Users/사용자명/Documents/index.html 리눅스 원본 경로 /home/사용자명/index.html 컨테이너 경로 /usr/local/apache2/htdocs 호스트의 파일 -> 컨테이너 속으로 복사 docker run --name httpd01 -d -p 8089:80 httpd http://192.168.1.104:8089 -> It works! 확인 vi index.html hello! docker cp index.html httpd01:/usr/local/apache2/htdocs/ http://192.168.1.104:8089 ->.. 2023. 5. 11.
[Docker] 워드프레스 구축 docker 네트워크 생성/ 삭제 docker network create 네트워크_이름 docker network rm 네트워크_이름 커맨드 내용 connect 네트워크에 컨테이너를 새로이 접속 disconnect 네트워크에서 컨테이너의 접속을 끊음 create 네트워크를 생성 inspect 네트워크의 상세 정보를 확인 ls 네트워크의 목록을 확인 prune 현재 아무 컨테이너도 접속하지 않은 네트워크를 모두 삭제 rm 지정한 네트워크를 삭제 MYSQL 컨테이너 실행시 필요한 옵션과 인자 docker run --name 컨테이너_이름 -dit --net=네트워크이름 -e MYSQL_ROOT_PASSWORD=Mysql_루트_패스워드 -e MYSQL_DATABASE=데이터베이스_이름 -e MYSQL_USER.. 2023. 5. 11.
[Docker] 컨테이너 간 통신 1. 컨테이너를 만들어줍니다. docker run --name httpd01 -d -p 8081:80 httpd docker run --name httpd02 -d -p 8082:80 httpd docker run --name httpd03 -d -p 8083:80 httpd docker ps 2. 각 컨테이너를 실행하여 net-tools와 iputils-ping 을 설치해봅니다. net-tools는 컨테이너에서 네트워크 명령어를 사용할 수 있도록 해주는 툴입니다. iputils-ping은 리눅스 ping 기본명령어를 사용할 수 있도록 도와주는 툴 docker exec -it httpd01 bash $ apt -y update $ apt install net-tools $ apt install iputi.. 2023. 5. 11.
728x90
반응형