Kubernetes 에서 서비스 작동시키기
pod의 ip까지 보고싶다면 밑과같은 명령어를 사용하자
위 pod를 참고해서 pod에 접속을 해봅시다.
현재 pod에 접속한 상태로 밑과같은 명령어로 update를 가져옵니다.
apt-get update
curl설치
apt-get install -y --allow-unauthenticated curl wget
만약 curl설치가 안된다면
echo "deb http://deb.debian.org/debian/ oldstable main contrib non-free
deb-src http://deb.debian.org/debian/ oldstable main contrib non-free
deb http://security.debian.org/ oldstable/updates main contrib non-free
deb-src http://security.debian.org/ oldstable/updates main contrib non-free" > /etc/apt/sources.list
apt-get install -y --allow-unauthenticated curl wget
위 순서대로 명령어를 실행해주시면 될겁니다.
페이지 요청해보기
hostname으로 ip확인하고 curl을 이용하여 웹페이지를 요청한 결과입니다.
현재 서버와 포트상태
서비스 생성 확인
타입은 노드포트이며 80으로 노출시키게 서비스를 생성했습니다.
서비스 목록에보면 80:31656이라고 되어있는데 80은 내부에서 사용하는 포트이고 31656은 외부에서 즉 나의 pc에서 접근하는 포트번호가 된다.
그럼 localhost:31656이라고 주소창에 입력해보자
아까 curl로 요청했던 데이터가 잘 넘어오는걸 확인할 수 있습니다.\
이제 정상작동 확인했으니 다시 삭제해주도록하겠습니다.
전글에서 말했다시피 pod를 제거해도 deployment된건 최소한 자신이 필요한 pod를 계속생성합니다 그리하여 deployment를 삭제시켜줘야 pod가 삭제가 됩니다.
스크립트 사용
이제 yml파일을 만들어서 deployment와 service를 해보겠습니다.
우선 서비스목록에 nginx-deplyment가있다면 삭제해줍시다.
yml파일
cicd-devops-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: cicd-deployment
spec:
selector:
matchLabels:
app: cicd-devops-project
replicas: 2
template:
metadata:
labels:
app: cicd-devops-project
spec:
containers:
- name: cicd-devops-project
image: edowon0623/cicd-project-ansible
imagePullPolicy: Always
ports:
- containerPort: 8080
cicd-devops-service.yml
apiVersion: v1
kind: Service
metadata:
name: cicd-service
labels:
app: cicd-devops-project
spec:
selector:
app: cicd-devops-project
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 32000
deployment해주는 yml 실행
현재 Redy가 0/2로 표시가되어있는데 image받는상태여서 아직 준비가안된상태인것이다.
시간이 지난뒤 다시 출력을해보면 정상적으로 2/2라고 표시된걸 확인할 수 있다.
service해주는 yml 실행
서비스가 되었으니 홈페이지도 확인을 해보겠습니다.
위처럼 kubernetes에서 서비스가 잘되는 모습을 확인!