전체 글 (1204) 썸네일형 리스트형 Docker 컨테이너를 쿠버네티스에서 실행하기 # 생성된 컨테이너를 쿠버네티스에 업로드 및 실행 kubectl get nodes # 업로드한 도커 이미지를 쿠버네티스에서 실행하기 kubectl create deploy http-go --image=may9noy/http-go 변경됨 : --dry-run -> --dry-run=client # 실행한 deploy 확인 > deploy -> rs -> pod 의 계층구조로 실행됨 kubectl get deploy kubectl get rs kubectl get pod # 서비스 expose 하기 kubectl expose deployment http-go --name http-go-svc - port 정보 넣으라고 나오는 경우 kubectl expose deployment http-go --name ht.. 쿠버네티스에서 실행할 go언어로 작성된 컨테이너 생성 # 쿠버네티스에서 실행한 Go언어로 구성된 컨테이너 작성 vim main.go # 코드 작성 package main import ( "fmt" "github.com/julienschmidt/httprouter" "net/http" "log" "os" ) func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { hostname, err := os.Hostname() if err == nil { fmt.Fprint(w, "Welcome! " + hostname +"\n") } else { fmt.Fprint(w, "Welcome! ERROR\n") } } func main() { router := httprouter.New() rou.. GCP에 쿠버네티스 설치 및 실행 # GCP에 쿠버네티스 설치 및 실행 1. GCP를 가입 2. may9noy-gke-test-20210904 라는 프로젝트를 생성 # 쿠버네티스 엔진 - 클릭을 하면 설치를 하는 방식이라 1분정도 기다리면 클러스터 만들기가 활성화가 된다. - 리전만 asia-northeast3-a 로 변경 후 만들기 # 생성된 클러스터에서 SSH 쉘 스크립트 실행 클러스터에서 연결을 클릭 후 CLOUD SHELL 실행 버튼을 클릭하면 바로 SSH 화면으로 접근 가능 # 쿠버네티스 노드 확인 kubectl get nodes - 노드들이 3개가 리스트업 되면 상태가 Ready 라면 정상적으로 생성 되었다. # 테스트용 nginx 설치하기 kubectl run nginx --image=nginx # nginx를 외부로 서비스.. master 노드와 work 노드 생성, 클러스터 구성 및 쿠버네티스 테스트 # master 노드와 work 노드 생성 # 버추어 박스에서 복제 실행 - 새 MAC 주소로 생성 - 호스트 이름이 고유해야함 - 스왑 오프 해줘야 함 # 복제 수행 1. 가상머신 우측클릭 복제 선택 2. 이름을 work1이라고 입력 > 모든 네트워크 어댑터 MAC 주소 포함 > 복제 3. 이전에 kubeamd을 생성한 가상 머신의 이름을 master로 지정 4. 2번째 가상머신도 위와같이 생성하고 이름을 work2 라고 설정 # 마스터 노드의 스냅샷 생성 스냅샷 찍기 > kubeadm 설치 입력 후 저장 > 복원하면 최초 상태로 돌아감 # NAT 네트워크 구성으로 3개의 머신이 서로 통신하게끔 하나의 네트워크로 구성하기 환경설정 > 네트워크 > Natnetwork 추가 > 각각 가상머신의 설정에서 네.. Docker와 kubeadm 설치 # docker와 kubeadm 설치 # 버추어 박스에 ubuntu 이미지를 불러온다. apt install curl sudo apt update E: /var/lib/apt/lists/lock 잠금 파일을 얻을 수 없습니다 - open (11: 자원이 일시적으로 사용 불가능함) 위의 오류 발생 시 reboot 으로 재시작 후 다시 update 수행 # 도커 설치 sudo apt install docker.io -y # kubeadm 설치 (우분투는 데비안 베이스) gedit kube_install.sh # 아래의 내용 입력 (한줄씩 실행하니 잘됨...흠...) # kube_install.sh sudo apt-get update sudo apt-get install -y apt-transport-http.. 쿠버네티스 기초 (실행 개념) # 쿠버네티스의 핵심 기능 > DevOps 1. 개발자 돕기 : 핵심 애플리케이션 기능에 집중 2. 운영팀 돕기 : 효과적으로 리소스를 활용 마스터노드 : 시스템을 관리 통제, 컨트롤 플레인을 관장 워커 노드 : 실제 애플리케이션의 실행을 담당 # 쿠버네티스의 실행 순서 1. 개발자는 배포할 이미지를 이미지 레지스트리에 push 해놓음 2. 앱 디스크립터 라는 yaml 파일로 문서를 작성 3. kube api 서버(마스터 플레인)가 슬레이브 노드에게 yaml 파일로 작성된 내용에 대해 명령을 내림 4. 명령받은 이미지를 docker registry에서 받아와서 실행 # 스왑기능 - 스왑기능은 메모리의 데이터를 hdd로 보내서 실행을 하는것 - 메모리와 hdd의 속도차가 발생하므로, 스래싱 현상이 발생함 .. 워드프레스 도커 이미지 만들기 # 워드프레스 도커 이미지 만들기 sudo apt-get update sudo apt-get upgrade # 도커 허브에서 찾은 XAMPP 다운로드 docker run --name WP -p 80:80 -d tomsik68/xampp # 워드프레스 다운로드 웹 브라우저에서 wordpress download > download.tar.gz > 링크주소복사 wget https://ko.wordpress.org/latest-ko_KR.tar.gz # 다운받은 wordpress 파일 압축해제 tar -xf latest-ko_KR.tar.gz cd wordpress # 도커 이미지 강제 종료 (참고) docker rm -f [이미지 id] 127.0.0.1:80 으로 접속하면 xampp 메인화면 나옴 # 도커의.. 도커 Private Image 구현 (개인용 레지스트리 구현) # Private 레지스트리 구현 및 사용 (개인용 레지스트리) docker images docker run -d --name docker-registry -p 5000:5000 registry # 실행한 서비스 확인 127.0.0.1:5000 127.0.0.1:5000/v2/ 헤더값이 전달되며, 정상적으로 서비스에 응답함 # 도커 태그 변경 docker tag may9noy/echo_test:v3.7 127.0.0.1:5000/echo_test - docker images 로 127.0.0.1:5000/echo_test 가 새로 등록된것을 확인 할 수 있다. # docker info 를 활용하여 docker의 정보를 살펴볼수 있다. docker info - 여기에 레지스트리 등 정보가 등록 되어있다. .. 이전 1 ··· 127 128 129 130 131 132 133 ··· 151 다음