내용 |
##### MiniKube와 kubectl 설치
$ wget https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
$ sudo dpkg -i minikube_latest_amd64.deb
$ sudo usermod -aG docker $USER && newgrp docker
$ minikube start
$ minikube status
$ sudo snap install kubectl --classic
$ kubectl version --client
$ kubectl config use-context minikube
##### 디플로이먼트 작성 및 적용
$ vi tomcat-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: jinkyoungheo/tomcat10
ports:
- containerPort: 8080
$ kubectl apply -f tomcat-deployment.yml
##### 디플로이먼트, 레플리카 확인
# 모든 네임스페이스에서 실행 중인 모든 파드의 레플리카 상태를 출력
$ kubectl get pods --all-namespaces
# 특정 네임스페이스에서 레플리카 상태를 확인
$ kubectl get pods -n default
# 레플리카셋과 디플로이먼트를 확인
$ kubectl get replicasets
$ kubectl get deployments
##### 서비스 작성 및 적용
$ vi tomcat-service.yml
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
spec:
selector:
app: tomcat
ports:
- protocol: TCP
port: 8081
targetPort: 8080
type: NodePort
$ kubectl apply -f tomcat-service.yml
##### 서비스 상태 확인
$ minikube status
$ minikube service list
|-------------|----------------|--------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-------------|----------------|--------------|---------------------------|
| default | kubernetes | No node port | |
| default | tomcat-service | 8081 | http://192.168.49.2:32341 |
| kube-system | kube-dns | No node port | |
|-------------|----------------|--------------|---------------------------|
##### 리눅스에서 URL 연결 확인
###################재부팅 후...
$ minikube start
$ minikube status
##### 레플리카셋 변경 및 확인
user1@user1-vm:~$ kubectl scale deployment tomcat-deployment --replicas=3
deployment.apps/tomcat-deployment scaled
user1@user1-vm:~$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
tomcat-deployment 2/3 3 2 29m
user1@user1-vm:~$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
tomcat-deployment 3/3 3 3 29m
user1@user1-vm:~$
#### 오라클 디플로이먼트 및 서비스 연결
$ vi oracle-deployment.yml
# oracle-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: oracle-deployment
spec:
replicas: 1
selector:
matchLabels:
app: oracle
template:
metadata:
labels:
app: oracle
spec:
containers:
- name: oracle
image: jinkyoungheo/oracle11g
ports:
- containerPort: 1521
$ vi oracle-service.yml
# oracle-service.yml
apiVersion: v1
kind: Service
metadata:
name: oracle-service
spec:
selector:
app: oracle
ports:
- protocol: TCP
port: 1521
targetPort: 1521
type: NodePort
$ kubectl apply -f oracle-deployment.yml
$ kubectl apply -f oracle-service.yml
$ minikube service list
##### 톰캣의 오라클 접속 주소 수정
$ vi index.jsp
url의 주소오 포트번호를 서비스 URL로 수정
$ kubectl get pods
# 파트 이름은 수정해야 함
$ kubectl cp index.jsp tomcat-deployment-68574fffd-c2bnr:/usr/local/tomcat/webapps/ROOT/index.jsp
# 변경한 파일은 모든 파드에 복사해야 함
##### 공유 볼륨 경로 지정
$ vi tomcat-deployment.yml
# tomcat-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
spec:
replicas: 3
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: jinkyoungheo/tomcat10
ports:
- containerPort: 8080
volumeMounts:
- name: tomcat-data
mountPath: /usr/local/tomcat/webapps # Pods path
volumes:
- name: tomcat-data
hostPath:
path: /home/docker/data # Minikube path
$ kubectl apply -f tomcat-deployment.yml
$ minikube ssh
$ sudo -i
# mkdir /home/docker/data/ROOT/
# exit
$ exit
$ vi index.jps
파일 일부 조금 수정하고 저장
$ sudo docker cp index.jsp minikube:/home/docker/data/ROOT/
minikube의 디렉토리에 수정한 파일 복사
|