목록전체 글 (142)
JINIers

POD 참고링크 레전드 귀찮음 패드에 필기 갈긴거 복붙하고싶음 힝..ㅜ (계속 수정) (오지는 복붙 하지만 정리) 1 pod - 1 container (O) / but 이걸 권장하는 편: 여러 프로세스를 실행하기 위해서는 컨테이너당 단일 프로세스가 적합 1 pod - n container (O) pod는 다수의 노드에 걸쳐서 실행되지 않고 단일노드에서 실행된다. pod 특징 - k8s에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위 - 포드의 모든 컨테이너는 동일한 네트워크&네임스페이스에서 실행된다. → 프로세스가 밀접하게 연관되어있어 하나의 환경에서 동작하는 것처럼 보임 - 같은 host name, network interface 공유 → 포트 충돌 가능성↑ 대충 이정도 파드를 직접 만..

사용중인 pod 스케일하기 일단 기존에 있던 pod 확인 kubectl get pod NAME READY STATUS RESTARTS AGE tc-666dc7d777-j42ts 1/1 Running 0 31h tc-666dc7d777-j4vg5 1/1 Running 0 30h tc-666dc7d777-r28gv 1/1 Running 0 30h tc-666dc7d777-tfsh8 1/1 Running 0 31h tc-666dc7d777-v7fjs 1/1 Running 0 31h 5개나 있다.. 이걸 3개로 줄여보자 pod scale kubectl scale deploy tc --replicas=3 3개로 줄인 뒤에 get pod로 확인한다. kubectl get pod -w kubectl get pod *..

컨테이너 배포하기 전에 우분투 환경에서 쿠버네티스 클러스터 구성 보러가기 아키텍처 이렇게 구동되게 만들 것임 LB(on-prem)를 제외한 클러스터 안에 것을 생성 deploy 생성 kubectl create deploy tc --image=consol/tomcat-7.0 --replicas=5 port expose kubectl expose deploy tc --type=NodePort --port=80 --target-port=8080 포트를 열어주지 않으면 deploy 내 pod 생성이 되지 않는다. 하지만 포트 오픈을 하면 pod와 deploy가 생성된 것을 알 수 있다. ip 확인 kubectl get svc 나는 구글에 vm으로 만들었기때문에 구글의 인터널 아이피를 입력해서 접속이 잘 되는지 ..

※ GCP에서 vm으로 구축하였다. vm 구성 머신타입 : n2-standard-2 * cpu는 2 이상이어야한다. 부트디스크 : 100gb 그럼 이제 설정따리를 해주면 됨 강사님은 체크리스트를 만들어서 하나씩 체크를 해주셨다. 체크리스트 램: 최소 2GB cpu: 2개 이상 클러스터 내 네트워크 연결 특정포트 개방 스왑 비활성화 대충 이렇게 볼 수 있다. vm system 업데이트 # root로 접속 sudo -i # vm 업데이트 apt update # root가 아닐경우 sudo apt update 스왑 비활성화 sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 컨테이너 런타임 구성 참고링크 * using docker reposi..

이걸 할거임 ※ 컨테이너 생성 전 클러스터를 생성해준다. node 확인 kubectl get node 컨테이너 배포 kubectl create deploy tc --image=consol/tomcat-7.0 --replicas=5 * pod와 deployment의 차이점 pod: 1개만 생성 및 관리 deploy: pod의 관리그룹, 관리그룹에서 지정된 pod들이 생성된다. 그래서 그림으로 본다면 아래처럼 된다. 컨테이너를 외부로 노출 kubectl expose deploy tc --type=LoadBalancer --port=80 --target-port=8080 생성된 pod와 svc 확인 * 여기서는 서비스가 포트를 외부로 노출시키는 기능을 가지고 있다. kubectl get pod,svc LB로 ..

이미지 검색 docker search xampp 컨테이너 실행 docker run --name wp -p 80:80 -d tomsik68/xampp 워드프레스에 필요한 파일 다운로드 요기로 들어가서 링크 주소 복사 wget https://ko.wordpress.org/latest-ko_KR.tar.gz 파일 압축 풀기 tar -xf latest-ko_KR.tar.gz 워드프레스 컨테이너 쉘 진입 docker exec -it wp bash 소유권 변경 후 해당 디렉터리로 이동 chown daemon. /opt/lampp/htdocs cd /opt/lamm/htdocs 디렉토리 내 파일 정리 # 백업디렉토리 생성 mkdir backup # 파일 이동 mv * ./backup exit 파일을 컨테이너에 넣기 ..

private registry 생성 docker run -d --name docker-registry -p 5000:5000 registry 컨테이너가 생성 됐는지 확인 docker ps 웹으로 접속해서 확인 127.0.0.1:5000/v2 docker tag twd5741/echo_test:3.7 127.0.0.1:5000/echo_test * ip와 포트번호를 같이 적어서 5000번 포트에 레지스트리가 있다는 것을 알려야함 그리고 push 해준다. image push docker push 127.0.0.1:5000/echo_test 이미지 test # 일단 이미지 삭제 docker rmi `docker images -q` -f # 이미지 확인 docker images REPOSITORY TAG IMA..

도커허브에 가입이 되어있어야한다. 터미널에 로그인을 해준다. docker login 도커 태그 변경 docker tag echo_test:latest [dockerhub ID]/echo_test:3.7 * 태그는 바뀌었지만 image ID는 echo_test와 똑같다. 이미지 푸시(→도커허브) docker push [docker ID]/echo_test:3.7 * 버전을 안붙이니 에러가 났다.. 그럼 이렇게 이미지가 허브에 저장됨 호스트에 저장된 이미지를 지우고 도커 허브에 있는 이미지 이용 컨테이너 생성 이미지 삭제 docker rmi `docker images -q` # 안지워지면 -f 추가 docker rmi `docker images -q` -f 도커허브 이미지 이용 컨테이너 생성 docker r..

도커로 빌드할 이미지 작성(testserver.py) # testserver.py import socket with socket.socket() as s: s.bind(("0.0.0.0", 12345))# 12345 포트 open s.listen() print("servier is startd") conn, addr = s.accept() # conn: 클라이언트와 통신할 소켓 # addr: 클라이언트의 정보가 들어있음 with conn: print("connected by", addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data) testserver.py 실행 python3 testserver.py 다른 탭을 열어 연..

컨테이너 생성 docker run -d --name nx -e env_name=test1234 --rm nginx nginx로 임시컨테이너(--rm)를 생성 실행 중인 컨테이너 확인 docker ps 컨테이너 쉘 접속 docker exec -it nx bash 설정된 환경변수 확인 printenv 환경변수 골라보기 printenv [환경변수명] or echo $[환경변수명] mysql 서비스 구동 docker run --name ms -e MYSQL_ROOT_PASSWORD='[password]' -d --rm mysql mysql 접속 docker exec -it ms mysql -u root -p sql 내 데이터베이스 보기 show databases;

1. 기존 설치된 모든 컨테이너와 이미지 정지 및 삭제 docker stop `docker ps -a -q` docker rm `docker ps -a -q` # 이미지 삭제 docker rmi `docker images -q` 2. 도커 기능을 사용해 jenkins 검색 docker search jenkins 3. jenkins 이용 설치 # 이미지 pull docker pull jenkins/jenkins # 이미지 포트 확인 docker inspect jenkins/jenkins:latest 8080 포트를 사용하는 것을 알 수 있다. # 임시컨테이너로 생성(--rm 옵션을 넣어준다) docker run -d -p 8080:8080 --name jk jenkins/jenkins 4. jenkins ..

포트포워딩으로 톰캣 실행 docker run -d --name tc -p 80:8080 consol/tomcat-7.0 실행 확인 curl 127.0.0.1 or wget -o- -q 127.0.0.1 컨테이너 내부 쉘 실행 docker exec -it [컨테이너명] /bin/bash 컨테이너 로그 확인 docker logs [컨테이너명] 프로그램이 실행될 때 출력되는 것을 로그로 담음 호스트의 파일을 도커 컨테이너로 넣기 # test 파일생성 echo testtxt > test.txt # docker container 내부로 파일 복사 docker cp [/경로/파일명] [컨테이너명]:[/경로/파일명] docker cp test.txt tc:/ # 파일 확인 docker excec -it tc cat ..

이미지 정보 확인 docker info root@server1-VirtualBox:~# docker info Client: Context: default Debug Mode: false Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 1 Server Version: 20.10.12 Storage Driver: overlay2# 스토리지가 설치되어있는 디렉토리 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 1 Pl..

도커 라이프 사이클 pull이 되어있는 이미지라면 pull run 해도 이미지가 다시 pull 되지 않음 run 시 컨테이너는 create → start 된다. run 2번 시행 시, 기존 컨테이너는 냅두고 새로운 컨테이너를 생성(create)하여 시작(start) * run : create가 필요할 때 사용하는 것이 좋음 이미지 가져오기(pull) docker pull [이미지] 컨테이너 생성(create) docker create -p 80:80 --name nx nginx 현재 실행 중인 컨테이너 확인 docker ps -a 컨테이너 시작(start) docker start [컨테이너이름 or 컨테이너id] 컨테이너 시작(run = create + start) docker run -d -p 80:8..
1. 마이크로 서비스 독립적인 실행 및 배포가 가능한 마이크로 서비스 2. 컨테이너 경량회된 컨테이너 단위 수평적 확장 3. DevOps 개발팀과 운영팀간 단일한 협업 프로세스 4. CI/CD 소규모 개발팀별 자율적, 독립적 서비스 운영
Planning and Building the Admin Cluster 1. What type of Anthos on bare metal cluster does not exist? Multi-cloud cluster. 2. What is the CLI tool used to create and manage Anthos clusters on bare metal? bmctl 3. Why does the Anthos on bare metal installer create a kind cluster? To reuse the software used to create and configure other clusters. Adding and Configuring User Clusters 1. 2. 3.

※ anthos on bare metal 정리 Anthos - google cloud 제품 및 기능을 모아둔 플랫폼 - 애플리케이션을 더 쉽게 배포하고 관리 - 오픈소스 제품을 기반으로 함 - Developer: Knative → cloud run 서버리스 기능을 사용하는 워크로드를 쉽게 배포할 수 있음 - service operator/SRE: Istio → anthos service mesh antahos 서비스 메시 구축으로 다른 환경에서 오픈소스 k8s 및 istio 사용 가능 - infrastructure operator: k8s → anthos clusters anthos on bare metal 베어메탈 클러스터 1. 온프레미스 환경에서 구동된다. 2. 기존 인프라를 계속 사용할 수 있다. ..

젠킨스를 설치 후 docker pipeline 플러그인 설치를 한 뒤 restart 버튼을 눌렀는데 이후 서버로 재접속이 되지 않은 에러 발생 컨테이너 상태 확인 docker ps -a status가 exited 된 것을 확인했다. root@cicd:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f5029f3d8d2c jenkins/jenkins:lts "/usr/bin/tini -- /u…" 7 minutes ago Exited (5) 3 minutes ago jenkins 컨테이너를 다시 실행시켜 줬다. docker container start f5029f3d8d2c 정상적으로 실행됐는지 다시 확인 root@cicd:~# ..

CentOS 7에 k8s 설치(on-prem) master node / work node 설치방법은 동일하나 init 후 는 약간 다름 작성은 마스터노드 기준으로 하였다. * 맨 아래는 init 시 발생하는 에러에 관한 트러블슈팅 방법 작성 K8S install(master,work node 공통 실행) selinux 종료 setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config swap 기능 off sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab swapoff -a 방화벽 끄기 systemctl disable firewalld systemctl stop firewalld netfi..

k8s를 설치하기 전에 hyper-v를 이용해서 vm을 생성하고 centos7을 설치할 것 쿠버네티스는 보통 1 master node - 2 work node를 사용하기 때문에 mater node 와 work node를 만들어 줄 것이다. CentOS VM 생성 원격연결을 통해 hyper-v로 접속한다. 새로만들기 → 가상컴퓨터 이름 및 위치지정 - 이름: master 세대지정 : 1세대 메모리 설정 : 2GB (최소사양) 네트워크 구성 : internet 가상 하드디스크 연결 : 디스크의 위치를 지정해준다. 디스크 크기 : 30GB OS 설치 옵션 OS를 바로 설치해도 되지만 일단 나중에 설치하기로 하고 스킵한다. 요약 vm 생성 완료 CentOS install 이제 os 파일을 넣어 설치를 해주자. ..

들어보았다. 온라인으로 머 쫌 재밌긴 했음 근데 잊고잇었던 택배가 도착하고... 나: ??????????????????????? 립스탑 백?? 을 줬다. 립스탑백이 뭐야 처음들어봄 펼쳤더니 웅 에코백~ 머 그래도 나름 재밌었음 중간중간 퀴즈도 내주시고 퀴즈 맞추면 상품도 주던데 사람들이 채팅창에 답 올려줘서 그냥 선착순 되고 그랬음 ㅋㅋㅋ

※ 수정 23021: 내용추가 볼륨 마운트 옵션을 이용해 로컬파일 공유하기 권한 ro : 읽기 전용(read only) rw : 읽기 & 쓰기(read & write) nginx로 볼륨마운트 docer run -d -p 80:80 --rm -v /var/www:/usr/share/nginx/html:ro nignx /var/www에 데이터가 없기 때문에 403 forbidden으로 뜬다. 그래서 파일을 하나 생성해준 뒤에 새로고침을 하면 이렇게 뜬다. jupyter lab 볼륨마운트 docker search jypeter 이걸 써줄거다. 그 전에 주피터는 파일이 많으니 디렉토리를 하나 만들어 거기에 몰빵해주도록 한다. mkdir jypeter * 주피터 컨테이너 실행 전에 실행중인 컨테이너들을 전부 삭제..

강의를 듣고 이해한 내용을 바탕으로 정리하였음. 도커(Docker) 컨테이너 기술의 표준 컨테이너 기술을 지원하는 다양한 프로젝트 중 하나(지만 이젠 거의 이것만 쓴다.) 다양한 운영체제에서 사용이 가능함(Mac, win, 리눅스 등) 애플리케이션에 국한되지 않고 의존성 및 파일시스템까지 패키징하여 빌드, 배포, 실행을 단순화함 커널기능 이용 가상화하여 사용 기본 명령어 도커 이미지 검색 docker search [다운받을 이미지 이름] 도커 이미지 다운로드 docker pull [이미지 이름] 그럼 이렇게 다운된다. 다운받은 이미지 확인 docker images 다운받은 이미지 삭제 docker rmi [이미지이름] 그리고 다시 확인하면 아무것도 없는 것을 볼 수 있다.

1. test file 생성 vi test.txt 파일 내용 #test.txt 221205 1405i : make test file 2. 현재 브런치 확인 git branch 3. 파일 추가 git add [파일명] git add .#파일을 전부 추가하고 싶을 때 4. git commit & 코멘트달기 git commit -m "[여기다가 적기]" 5. git push git push -u origin main 하면 user name과 비밀번호를 입력하라고 한다. 6. gitlab에 업데이트 됐는지 확인 7. git pull vscode를 이용해서 코드를 수정한다면 작성한 코드가 vm으로는 업데이트가 안될 수 있다. 그럴땐 gitlab에서 데이터들을 가져온다. * 명령어 실행은 git 디렉토리에서 하기 ..

일단.. 1. vm을 우분투로 생성해주고 업데이트를 해준다. apt-get update 2. git 버전 확인 gcp는 vm에 기본적으로 git client가 설치되어 있다. git -version 3. git clone git 복사하기 전에 프로젝트를 하나 생성한다. 생성된 프로젝트 링크를 복사한다. 복사한 링크를 vm에 붙여넣기 git clone [복사한 gitlab http 링크] 그러면 root@song-test:~# git clone [붙여넣기 한 gitlab http링크] Cloning into 'song-build'... Username for 'http://_______________________': [이름입력] Password for 'http://_____________________..

Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox : open /run/flannel/subnet.env: no such file or directory 해결방법 아 진짜 킹받는ㅠㅠ 대체 이거 며칠째 해결하고 있는거묘ㅠㅠ # 에러코드 확인 kubectl describe pod nx 에러코드 Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "2c33f444a427dff160fdf0f3ad325cbdb6e2117e624599c2d9bfb7180db7c94c..

gitlab ↔ gcp source repository 연동하는거 정리하다가 나도모르게 정리가 된 branch 개념 무슨상관관계인진 모르겠지만.. 무튼 + 세상에 얘들아(0명) 완전 좋은 사이트를 찾아냄‼‼‼ 제발 봐줘!!!!!!!!!! 링크 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog 누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다! backlog.com 브런치에는 main/master 브런치가 있다. 요샌 main 브런치로 바뀌어서 이걸 기점으로 설명하겠음 크게 메인 branch가 있고 이걸 중심으로 나뭇가지처럼 필요한 브런치들을 생성함 메인브런치에 'ㄱ,ㄴ,ㄷ' 라는 파일이 있는..
Terraform을 사용하여 Google Cloud에서 인프라 자동화: Challenge Lab test 주제 기존 인프라를 terraform 구성으로 가져오기 terraform 모듈 빌드 및 참조 구성에 원격 백엔드 추가 terraform 레지스트리의 모듈 사용 및 구현 인프라 재프로비저닝, 파괴 및 업데이트 생성한 리소스 간의 연결 테스트 참고 동영상 : https://youtu.be/eY7pYGX2MTo 작업 1. 구성파일 생성 아래의 파일 및 디렉토리를 touch, mkdir 이용 생성 main.tf variables.tf modules/ └── instances ├── instances.tf ├── outputs.tf └── variables.tf └── storage ├── storage.tf..