노드 리스트를 확인 MBP:~|⇒ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE broker-883809602-1qhmw 1/1 Running 0 6d 10.4.1.11 gke-test-broker-pool-xxxx broker-883809602-n9kd3 1/1 Running 0 6d 10.4.1.10 gke-test-broker-pool-xxxx redis-master-3573802360-htmp5 1/1 Running 0 6d 10.4.0.8 gke-test-broker-pool-xxxx test-broker-540561889-jjl1s 1/1 Running 0 9d 10.4.0.7 gke-test-broker-pool-xxxx접속 ..
노드 리스트를 확인
MBP:~|⇒ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
broker-883809602-1qhmw 1/1 Running 0 6d 10.4.1.11 gke-test-broker-pool-xxxx
broker-883809602-n9kd3 1/1 Running 0 6d 10.4.1.10 gke-test-broker-pool-xxxx
redis-master-3573802360-htmp5 1/1 Running 0 6d 10.4.0.8 gke-test-broker-pool-xxxx
test-broker-540561889-jjl1s 1/1 Running 0 9d 10.4.0.7 gke-test-broker-pool-xxxx
접속
MBP:~|⇒ gcloud compute ssh gke-test-broker-default-pool-xxxx
docker process 확인
$ docker ps CONTAINER ID IMAGE 8fc5ad6417e0 redis@sha256:239820aax
redis-cli를 실행해서 필요한 명령어 수행하기
$ docker exec -it 8fc5ad6417e0 redis-cli
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
'Programming > GCP' 카테고리의 다른 글
pod restart하기 (0) | 2017.11.23 |
---|---|
Kubernetes 참고자료 (0) | 2017.11.15 |
Java Application GKE Kubernetes 적용하기 (0) | 2017.11.14 |
GCP Instance에 ssh 연결하기 (0) | 2017.10.23 |
$ kubectl replace --force -f
$ kubectl replace --force -f <resource-file>
'Programming > GCP' 카테고리의 다른 글
kubernetes pod의 redis-cli 접근하기 (0) | 2017.11.23 |
---|---|
Kubernetes 참고자료 (0) | 2017.11.15 |
Java Application GKE Kubernetes 적용하기 (0) | 2017.11.14 |
GCP Instance에 ssh 연결하기 (0) | 2017.10.23 |
ConceptContainer Cluster Architecture : https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture Pods : https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pods-and-controllers Service : https://kubernetes.io/docs/concepts/services-networking/service/ Deployments : https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ TutorialsBasics : https://ku..
Concept
Tutorials
Examples
Spring Boot : https://github.com/saturnism/spring-boot-docker
Deploying PHP Guestbook application with Redis : https://kubernetes.io/docs/tutorials/stateless-application/guestbook/#start-up-the-redis-master
Articles
Related
'Programming > GCP' 카테고리의 다른 글
kubernetes pod의 redis-cli 접근하기 (0) | 2017.11.23 |
---|---|
pod restart하기 (0) | 2017.11.23 |
Java Application GKE Kubernetes 적용하기 (0) | 2017.11.14 |
GCP Instance에 ssh 연결하기 (0) | 2017.10.23 |
target/broker-1.0-SNAPSHOT.jar가 존재한다고 생각합니다. Docker 설정 먼저 아래와 같이 Dockerfile 만들겠습니다. FROM openjdk:8 COPY target/broker-1.0-SNAPSHOT.jar /app.jar EXPOSE 9000/tcp ENTRYPOINT ["java", "-jar", "/app.jar"]docker에 login하고 build 후 run해봅니다. docker logindocker build -t asia.gcr.io/test-142514/test-broker:v1 .docker run -ti --rm -p 9000:9000 asia.gcr.io/test-142514/test-broker:v1Docker Image GCR에 Push하기 go..
target/broker-1.0-SNAPSHOT.jar가 존재한다고 생각합니다.
Docker 설정
먼저 아래와 같이 Dockerfile 만들겠습니다.
FROM openjdk:8
COPY target/broker-1.0-SNAPSHOT.jar /app.jar
EXPOSE 9000/tcp
ENTRYPOINT ["java", "-jar", "/app.jar"]
docker에 login하고 build 후 run해봅니다.
docker login
docker build -t asia.gcr.io/test-142514/test-broker:v1 .
docker run -ti --rm -p 9000:9000 asia.gcr.io/test-142514/test-broker:v1
Docker Image GCR에 Push하기
google cloud에 push합니다.
gcloud docker -- push asia.gcr.io/test-142514/test-broker:v1
Compute > Container Engine > Container Registry에서 확인이 가능해집니다.
GKE와 연동
그럼 우리 Application이 동작할 Cluster를 만들어봅시다.
아래 화면에서 CREATE CLUSTER를 클릭하여 생성할수도 있지만 CLI로 만들어 보겠습니다.
machine-type은 https://cloud.google.com/compute/docs/machine-types 에서 참고하세요.
gcloud container clusters create test-broker-cluster --num-nodes 2 \
--machine-type n1-standard-1 --zone asia-northeast1-a
kubectl을 사용하기 위해서 아래와 같이 component를 install해야 합니다.
$ gcloud components install kubectl
WARNING: Accessing a Container Engine cluster requires the kubernetes commandline client [kubectl]. To install, run $ gcloud components install kubectl Creating cluster test-broker-cluster...done. Created [https://container.googleapis.com/v1/projects/test-142514/zones/asia-northeast1-a/clusters/test-broker-cluster]. kubeconfig entry generated for test-broker-cluster. NAME ZONE MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS test-broker-cluster asia-northeast1-a 1.7.8-gke.0 35.192.91.27 n1-standard-1 1.7.8-gke.0 2 RUNNING
kubectl run test-broker --image=gcr.io/test-142514/test-broker:v1 --port=9000
배포가 잘되었는지 확인해볼까요?
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE test-broker 1 1 1 1 2m
$ kubectl get pods NAME READY STATUS RESTARTS AGE test-broker-540561889-jjl1s 1/1 Running 0 30m
자 그런데 여기까지 해서는 해당 ip와 port로 접근해서는 접속이 되지 않습니다.
아래와 같은 절차로 External Traffic을 허용해줘야 합니다.
kubectl expose deployment test-broker --type=LoadBalancer
개방된 External IP를 확인해서 해당 IP, Port로 Application을 호출해봅시다.
⇒ kubectl get services NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.7.240.1 <none> 443/TCP 49m test-broker 10.7.249.27 104.193.123.118 9000:30103/TCP 1m
GKE Scale Up
$ kubectl scale deployment hello-java --replicas=3
deployment "hello-java" scaled
$ kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
hello-java 3 3 3 3 22m
Service Update 시 Roll-Out Deployment
docker build -t asia.gcr.io/test-142514/test-broker:v2 .
gcloud docker -- push asia.gcr.io/test-142514/test-broker:v2
$ kubectl set image deployment/test-broker test-broker=asia.gcr.io/test-142514/test-broker:v2
deployment "test-broker" image updated
Rollback
$ kubectl rollout undo deployment/test-broker
'Programming > GCP' 카테고리의 다른 글
kubernetes pod의 redis-cli 접근하기 (0) | 2017.11.23 |
---|---|
pod restart하기 (0) | 2017.11.23 |
Kubernetes 참고자료 (0) | 2017.11.15 |
GCP Instance에 ssh 연결하기 (0) | 2017.10.23 |
gcloud compute ssh [INSTANCE_NAME] https://cloud.google.com/compute/docs/instances/connecting-to-instance
gcloud compute ssh [INSTANCE_NAME]
https://cloud.google.com/compute/docs/instances/connecting-to-instance
'Programming > GCP' 카테고리의 다른 글
kubernetes pod의 redis-cli 접근하기 (0) | 2017.11.23 |
---|---|
pod restart하기 (0) | 2017.11.23 |
Kubernetes 참고자료 (0) | 2017.11.15 |
Java Application GKE Kubernetes 적용하기 (0) | 2017.11.14 |
- Total
- Today
- Yesterday
- TDD
- GCP
- 은전한닢
- ansible-container
- mecab
- MongoDB
- Redis
- Python
- X-Pack
- pymongo
- MacOS
- zsh
- Spring Boot
- xpath
- kubernetes
- scrapy
- docker
- Netty
- Paw
- IntelliJ
- spring #lombok
- Elasticsearch
- PubSub
- Ansible
- AWS
- git
- docker-machine
- boot2docker
- PIP
- pycharm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |