ArgoCD 설정 (4부)

mcock·2022년 5월 26일
0

NKS CI/CD구축

목록 보기
5/7

3부에서 ArgoCD 로그인 화면 띄우기 성공 하였습니다.
계정은 admin 이고 초기 비밀번호는 아래 명령어로 구할 수 있습니다.

kubectl get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

그리고 초기 비밀번호를 변경 해야 하는데 변경은 아래와 같이 cli 로
로그인 후 변경 할 수 있습니다.

argocd login [도메인주소] --grpc-web
argocd account update-password

argocd 가 NKS kubernets 에 배포 할 수 있도록 admin 권한을 부여 합니다.

kubectl create clusterrolebinding default-admin --clusterrole=admin --serviceaccount=default:default

--serviceaccount=default:default 여기서 저는 namespace 를 default 로 했기 때문에 이렇게 기입 했습니다. 만약 namespace를 argocd 로 만들었다면 argocd:default 라고 기입해야 합니다.

아래 edit 명령으로 namespace 를 defaul 로 변경 하였습니다.
namepace를 argocd 로 하였다면 수정할 필요 없습니다.

kubectl edit ClusterRoleBinding argocd-application-controller
kubectl edit ClusterRoleBinding argocd-server

앞서 3부에서 만들어 두었던 yaml SourceCommit 리포지토리에 대해 git origin 설정을 하고 git clone 후

아래와 같이 deployment.yaml 파일을 생성 합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: registrytest.kr.ncr.ntruss.com/nginx:latest
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: regcred

저는 2부에서 만든 리포지토리에 nginx 이미지를 올려 놓았습니다.
그리고 역시 2부 마지막 하단에서 regcred 명으로 secret 을 생성 하였습니다.

생성한 deployment.yaml 을 git add . 하고
git commit 후 SourceCommit 리포지토리에 git push origin master 명령어로 푸쉬 합니다.

argocd cli 명령어로 SourceCommit git 리포지토리를 등록 합니다.

argocd login argocd.도메인주소 --grpc-web
argocd repo add <repo_url> --username <username> --password <password>

또는 argocd 콘솔 UI 통해서 Settings > Repositories > +Connect REPO 통해서 등록도 가능 합니다.


argocd Application 을 만들어 줍니다.

argocd app create mysample \
--repo https://devtools.ncloud.com/*****/yamlreposit.git \
--path yaml \
--dest-server https://kubernetes.default.svc \
--dest-namespace default

repo 에 https SourceCommit 리포지토리 주소를 넣고
path 에 저는 yaml 명인 폴더 하위에 deployment.yaml 을 넣었기에 yaml 을 넣었습니다.
namespace 는 default 로 하였습니다.

역시 ui 통해서도 설정 가능 합니다. Applications > + NEW APP 클릭

생성을 하면 SouceCommit 리포지토리에서 deployment.yaml 파일을 읽어봐 NKS에 deploy 합니다.

위와 같이 녹색이 표시 되면 정상 입니다.

kubectl get deploy 명령어로도 deploy 가 잘 되었는지 확인 합니다.

5부에서는 jekins pipeline을 통해 웹어플리케이션 소스를 pull 하고 Maven build 한 후 Docker build , Docker push 및 deployment.yaml Push, Argocd Deploy 까지 되도록 합니다. (인트로 아키텍처 참고)

0개의 댓글