argoCD 전용 네임스페이스 생성
**$ kubectl create namespace argocd**
namespace/argocd created
argoCD 설치 yaml 파일 적용
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
외부 yml 파일 불러와서 구동
설치를 위한 loadbalancer 서비스 실행
$ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
접속할 주소 확인
$ kubectl get svc -n argocd argocd-server
접속 시 사용자 패스워드 확인
$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
서비스 확인 후 external-ip로 브라우저에서 접속하기
username: admin
테스트
NEW APP 클릭

kube-control1에서 kubectl get all 실행
vagrant@kube-control1:~$ **kubectl get all**
NAME READY STATUS RESTARTS AGE
pod/guestbook-ui-6cb57c694d-n9c29 1/1 Running 0 94s
pod/myapp-sts-vol-0 1/1 Running 0 3d20h
pod/myapp-sts-vol-1 1/1 Running 0 3d20h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/guestbook-ui ClusterIP 10.233.8.68 <none> 80/TCP 94s
service/kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 10d
service/myapp-svc-headless ClusterIP None <none> 8080/TCP 3d22h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/guestbook-ui 1/1 1 1 94s
NAME DESIRED CURRENT READY AGE
replicaset.apps/guestbook-ui-6cb57c694d 1 1 1 94s
NAME READY AGE
statefulset.apps/myapp-sts-vol 2/2 3d20h
새 레포 생성

디렉터리 정리
vagrant@kube-control1:~$ mkdir nginx
vagrant@kube-control1:~$ cd nginx/
vagrant@kube-control1:~/nginx$ git init
yml 파일 작성
$ vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: asdfkco/nginx-oss:latest
ports:
- containerPort: 80
$ vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
원격 레포 연결 후 push
새로운 앱 생성




**$ kubectl get all -n nginx**
NAME READY STATUS RESTARTS AGE
pod/nginx-7b464d6475-9spwn 1/1 Running 0 50m
pod/nginx-7b464d6475-mx6mc 1/1 Running 0 50m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-svc LoadBalancer 10.233.30.52 192.168.56.202 80:32216/TCP 50m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 2/2 2 2 50m
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-7b464d6475 2 2 2 50m
**$ kubectl get application -A**
NAMESPACE NAME SYNC STATUS HEALTH STATUS
argocd guestbook Synced Healthy
argocd nginx Synced Healthy
**$ kubectl get deployments.apps -n nginx**
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 2/2 2 2 46m
192.168.56.202

이미지 버전 변경
**$ vim nginx-deployment.yaml**
...
image: asdfkco/nginx-oss:nginxstore
...
원격 저장소에 푸쉬
변화를 감지해서 다시 디플로이

