목록공부 (52)
JINIers
아니 왜케..머리가 돌이 된 것같지..# Dictionarylist와 약간 다름dictionary는 키가 식별하는 요소가 있음 형식{"key" : value}# {"key": value}programming_dictionary = { "Bug": "An error in a program that prevents the program from running as expected.", "Function": "A piece of code that you can easily call over and over again.", "Loop": "The action of doing something over and over again."}list[0] & dictionary 차이점사전은 키가..
cipher 1 alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']direction = input("Type 'encode' to encrypt, type 'decode' to decrypt:\n")text = input("Type your message:\n").lower()s..
# Function의 기본유형(def)# funtion의 기본 유형'''def my_function(): 여기에 적절한걸 넣으면 됨'''# Review: # Create a function called greet(). # Write 3 print statements inside the function.# Call the greet() function and run your code.# Greeting()이라는 함수를 만듭니다.# 함수 안에 3개의 print 문을 작성합니다.# Greeting() 함수를 호출하고 코드를 실행합니다.def greet(): print("no.1"), print("no.2"), print("no.3"), print("")greet()# function wuth inpu..
postman 이용 사용법 Headers 설정 scripts 설정(Pre-request)// OpenAPI Informationvar method = "GET";var url = "https://openapi.samsungsdscloud.com/project/v2/projects/products/resources";var timestamp = Date.now();var accessKey = "[accesskey값]";var secretKey = "[secretkey값]";var projectId = "[프로젝트-id]";var clientType = "OpenApi";// Make Signaturefunction makeSignature() { url = encodeURI(url); // 한글, 특..
Day 6는 허들을 뛰어야했다. 이걸 하기 위해 function을 배웠다 # function # def : 함수생성 & 함수 정의(defining function) def 의 기본 틀 def my_function(): print("hello") print("bye") my_function()# 호출함수 마지막 줄은 설정한 함수를 호출한다. 호출함수(calling functions) 라고 한다. 함수 설정 할 때 들여쓰기가 중요하다. # indentation tab으로 들여쓰기 : 4칸 스페이스바로 들여쓰기 : 1칸 # while loops while 기본 틀 while something_is_true: # do something repeatedly for가 어떤 범위에서 반복하는 것이라면 while은 특..
Day5에서 만들거 : 비밀번호 생성 프로그램 아래의 데모를 만드는게 최종목표다. 이렇게.. 이걸 내가 할 수 있을까.. 일다.ㄴ.. day5에선 for 루프와 range() 함수 두가지를 배우고 사용하여 프로그램을 만든다. Loop for : 목록의 항목을 살펴보고 각각 항목으로 작업을 수행할 수 있음. for item in list_of_items: print(item) 예시 fruits = ["Apple", "Peach", "Pear"] for fruit in fruits: print(fruit) print(fruit + " Pie") print(fruits) 실행결과 마지막 줄이 ['Apple', 'Peach', 'Pear'] 로 프린트된건 for 문을 나와서 적힌 print(fruits) 때문에..
day 4는 랜덤모듈을 이용하여 가위바위보 게임을 만들어야한다. (rock, scissors, paper game) # random import random import my_module # 모듈 불러오기 # 모듈을 불러오면 my_module.pi 안의 내용인 pi = 3.14*** 의 내용이 프린트된다. print(my_module.pi) ############################################################################ import random # 1 - 10 중 랜덤 random_integer = random.randint(1,10) print(random_integer) # 0.000 - 0.99999... random_float = rando..
연속되는 여러 if 문 if 안에 if가 또 있음 근데 elif도 있음 ㅜㅜ 쪼꼼 어려웠찌만 뭐.. 나름 해냈더 기특해요 복복복🫳🫳🫳🫳 # multiple if 이용 롤러코스터 키 제한 print("Welcome to the rollercoaster!") height = int(input("What is your height in cm? ")) bill = 0 if height >= 120: print("You can ride the rollercoaster!") age = int(input("What is your age? ")) if age < 12: bill = 5 print("Child tickets are $5.") elif age = 45 and age 90): print(f"Your scor..
day3은 제어흐름 및 논리연산자를 배웠다. 안젤라는 day 첫 강의에 'n일차 목표 : ____ 만들기' 이렇게 알려주는데 어려운 것도 있고 쉬운 것도 있음 어려우면 다시 그 회차를 복습하고 다시 작성했다. # if / else 및 조건 연산자를 이용한 제어흐름 동영상 보면서 한거라 종종 내가 봐도 이건 뭘까..싶은 것도 있음 ㅜㅜㅋㅋㅋ # # 욕조 예시 water_level = int(input("water_level: ")) if water_level > 80 : print("Drain water") else: print("continue") print("Welcome to the rollercoaster!") height = int(input("What is your height in cm? ")..
day2는 데이터 타입을 배웠다. # data types #Data Types #String # 가장 기본적인 데이터 타입 print("hello"[4]) "123" # "" 안에 있으면 어쨌든 문자로 취급 print("123" + "345") # integer : 정수 print(123 + 345) 123_456_789 → 123456789 로 인식 # float : 소수 3.14159 # boolean : 참/거짓 True False # 유형 오류, 유형 검사 및 유형 변환 num_char = len(input("what is your name?")) # print("your name has " + num_char + " characters.") error : num_char가 정수가 아님 new_n..
맨날 코드공부 해야지 하고 책도 사놓고 이것저것 보면서 혼자 깔짝거리다가 도저히 안되겠다 싶어서 유데미에 있는 엄청엄청 유명한 안젤라님의 파이썬 100일 부트캠프를 결제함 혼자서 하려고 해도 아예 기초,기본이 없다보니 너무 어려웠다. 그래서 전세계적으로 사람들이 많이 듣는 영상을 결제했는데 생각보다 너무 쉽고 재밌게 설명해주심! 이해도 쏙쏙 잘된다. 그래서 day 한개가 끝날 때 마다 정리하는 ㅌ ㅏ래 100일을 다 채우면 깃허브에도 백업해야지 히히 Day 1 # print # printing 개념 # Write your code below this line 👇 print("Hello World!") # print("Hello World!) # print 구문에 '', ""가 없으면 출력되지 않음 # p..
Additional Training: Partners (Classroom) Gen AI 교육 및 실습 gen ai는 처음이라 어려웠는데 실습도 도와주시고 생각보다 쉽게 할 수 있어서 좋았음 ㅈㅐ밌었다. 근데 ai 진짜 어렵다 흠//ㅜ
AWS Partner: Containers on AWS (Technical) 교육 기본 지식들 교육 및 랩 실습 할 수 있어서 좋았음
1. app=nginx 레이블을 가진 pod 생성(yaml 이용) # label_test.yaml apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx pod 생성 kubectl create -f label-test.yaml 2. app=nginx 레이블을 가진 pod get kubectl get pod 3. get pod의 레이블 확인 kubectl get pod --show-labels 4. app=nginx 레이블을 가진 파드에 레이블 추가(team=dev1) kubectl label pod nginx team=dev1 kubectl get pod --sh..
레이블 리소스에 첨부하는 임의의 키 값 쌍 ((ex) app:test, rel:beta) 레이블 셀렉터를 사용하면 각종 리소스를 필터링하여 선택할 수 있음 리소스: 한개 이상의 레이블을 가질 수 있음 리소스 만드는 시점에 레이블을 첨부한다. 기존 리소스에 레이블 값 수정&추가 가능 pod 레이블 확인 pod 생성 # http-go-v2.yaml apiVersion: v1 kind: Pod metadata: name: http-go labels: creation_method: manual evn: prod spec: containers: - name: http-go image: ______/http-go ports: - containerPort: 8080 protocol: TCP kubectl create..
liveness-exec pod 생성 # livemess.yaml apiVersion: v1 kind: Pod metadata: labels: test: liveness name: liveness-exec spec: containers: - name: liveness image: registry.k8s.io/busybox args: - /bin/sh - -c - touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600 livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 pod 세부내용 확인 kubectl describe pod liveness-e..
Probes 종류(3가지) Liveness, Readiness, Startup 1. Liveness Probe 컨테이너가 살았는지 판단하고 다시 시작하는 기능 컨테이너의 상태를 스스로 판단하여 교착상태에 빠진 컨테이너를 재시작함 버그가 생겨도 높은 가용성을 보임 Liveness Probe Pod 생성 바로가기 2. Readiness Probe pod가 준비된 상태에 있는지 확인하고 정상 서비스를 시작하는 기능 pod가 적절하게 준비되지 않은 경우 로드밸런싱을 하지 않음 3. Startup Probe 애플리케이션의 시작시기를 확인하여 가용성을 높이는 기능 Liveness, Readiness의 기능을 비활성화 컨테이너가 시작할 수 있는 시간을 빌어준다.
1. 모든 리소스 삭제 kubectl delete all --all 2. yaml 파일 이용 jenkins-manual pod 생성 # jenkins-manual-pod.yaml apiVersion: v1 kind: Pod metadata: name: jenkins-manual spec: containers: - name: jenkins image: jenkins/jenkins:lts # image: jenkins 하니까 errimagepull이 떠서 버전명을 지정 ports: - containerPort: 8080 pod 생성 kubectl create -f jenkins-manual-pod.yaml 3. jenkins pod에서 curl 명령어로 localhost:8080 접속 kubectl exec..
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 ..