Helm
주로 사용하는 명령어는 아래와 같다.
- helm ls : 현재 배포된 char의 release 정보를 알 수 있다.
- helm ls –all : 현재 배포된 chart 외에 실패하거나 지워진 chart의 정보를 모두 볼 수 있다.
- helm install
--dry-run --debug - install 실행을 시뮬레이션 해주고 chart를 rendering하여 출력해 준다.
- helm lint
- chart의 문법 체크를 해준다.
Delete 명령어는 해당 chart의 sub chart까지 모두 delete 하므로 (관련 pod, service, ingress, …) 주의해서 사용해야 한다.
- helm delete
- 배포된 chart를 삭제 한다. chart는 이전 revision으로 변경되거나 delete 상태로 바뀐다.
- 실제로 chart가 삭제가 된 상태가 아니기 때문에 release name을 재사용 불가하다.
- helm delete –purge
- 배포된 chart를 완전히 삭제한다. revision을 모두 지워버리고 해당 이름도 삭제한다.
- 실제 chart가 삭제된 경우로 release name을 재사용 가능.
배포시 jenkins에서 사용되는 명령어
-
helm install
--name= --namespace= - chart dir에 있는 Chart.yalm을 시작으로 helm chart를 rendering 한 후 rendering 된 yaml 파일을 가지고 배포를 실행한다.
- helm ls시에 release name 으로 확인 가능
- relelase name은 중복이 불가하다.
- namespace를 주지 않을 경우 default namespace에 배포 된다.
-
helm upgrade
--namespace= -
strategy
에 따라 배포를 실행해 준다.
- Recreate deployment: mysql과 같은 경우 앱을 다시 시작한다.
- RollingUpdate Deployment: rolling update를 실행한다.
Kubectl
pod 확인
-
kubectl get pod –namespace=
-
1 2 3 4
[root@dvpdbp01 ~]kubectl get pod --namespace=workbench-dev NAME READY STATUS RESTARTS AGE workbench-db-db-db6cb74d-l4rbj 1/1 Running 0 5h workbench-server-workbench-574d7957b7-xc5xw 1/1 Running 0 3h
service 확인
-
kubectl get service –namespace=
-
1 2 3 4
[root@dvpdbp01 ~]kubectl get service --namespace=workbench-dev NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE workbench-db-db ClusterIP 10.108.29.208 <none> 3306/TCP 5h workbench-server-workbench ClusterIP 10.103.165.47 <none> 80/TCP 5h
ingress 확인
-
kubectl get ingerss –namespace=
-
1 2 3
[root@dvpdbp01 ~]kubectl get ingress --namespace=workbench-dev NAME HOSTS ADDRESS PORTS AGE workbench-dev.dep.deppaas.io-workbench-server workbench-dev.dep.deppaas.io 80 5h
secret 확인
-
kubectl get secrets –namespace=
-
1 2 3 4 5 6
[root@dvpdbp01 ~]kubectl get secret --namespace=workbench-dev NAME TYPE DATA AGE default-token-nv525 kubernetes.io/service-account-token 3 5h redii-workbench kubernetes.io/dockercfg 1 5h workbench-db-db Opaque 1 5h workbench-server-workbench Opaque 2 5h
pod에 접속
-
kubectl exec -it
--namespace= – /bin/bash -
1 2 3 4 5
[root@dvpdbp01 ~]kubectl exec -it workbench-server-workbench-574d7957b7-xc5xw --namespace=workbench-dev -- /bin/bash [root@workbench-server-workbench-574d7957b7-xc5xw server]# ls README.md app-installone.js auth-install.js buildjm delete_tables.sql fs-install.js node_modules proxy uninstall.js app app-uninstall.js auth-uninstall.js common emul fs-uninstall.js notify test unit-manager.js app-install.js auth build conf fs install.js package.json tests workbench_tables.sql
상세 보기
-
kubectl describe <pod service ingress secret pvc pv> --namespace= -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[root@dvpdbp01 ~]kubectl describe service workbench-server-workbench --namespace=workbench-dev Name: workbench-server-workbench Namespace: workbench-dev Labels: app=workbench-server-workbench chart=workbench-0.0.1 heritage=Tiller release=workbench-server Annotations: <none> Selector: app=workbench-server-workbench,tier=server Type: ClusterIP IP: 10.103.165.47 Port: http 80/TCP TargetPort: 8080/TCP Endpoints: 10.34.0.4:8080 Session Affinity: None Events: <none>
Name space 생성
- kubectl create namespace
Image secret 생성 (docker registry auth)
- kubectl create secret docker-registry redii-workbench –docker-server=”server_url” –docker-username=”dep.dev” –docker-password=”test123@2” –docker-email=”user-id@mail.addr” –namespace=workbench-dev