티스토리 뷰
kubectl설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ 참고
k8s 리소스 축약어 모음
https://w.cublr.com/cloud/kubernetes/resource-short-name/
kubectl상태 보기
kubectl config view
context 등록
context는 kubectl이 동작하는 대상 k8s입니다.
k config set-context ingress-admin@kubernetes --cluster=kubernetes --user=kubernetes-admin --namespace ingress-nginx
context 바꾸기
k config use-context <context_name>
ex> k config use-context ingress-admin@kubernetes
kubectl run
curl pod띄우기
kubectl run curl --image=radial/busyboxplus:curl -i --tty
Redis띄우기 --image 옵션으로 이미지 지정하기
kubectl run redis --image=redis:alpine --dry-run=client -oyaml > redis-pod.yaml
label에 tier:db를 추가해서 띄우기
kubectl run redis --image=redis:alpine -l tier=db
8080 container port인 nginx를 띄우는 yml 만들기
k run custom-nginx --image=nginx --port=8080 --dry-run=client -o yaml > pod_custom-ngins.yml
Namespace 지정해서 ingress 띄우기
k apply -f ingress_springboot.yml -n ingress-nginx
디렉토리에 있는 모든 .yaml파일 한번에 띄우기
kubectl create -f .
Deployment 띄운 후에 수정하기
kubectl edit wso2-api-manager
수정 후에 :wq 하면 저장 되고 반영이 됩니다.
Expose
Deployment Expose하기(Service생성)
kubectl expose deployment wso2-api-manager --port=8080 --target-port=8080 --name=wso2
redis라는 이름의 pod를 6379 포트로 expose하는 서비스 생성
k expose pod redis --port=6379 --type=ClusterIP --name=redis-service --dry-run=client -o yaml > redis-service.yml
EKS사용하기
EKS에 kubectl로 접근할 필요가 있을 때 사용합니다.
aws eks --region region update-kubeconfig --name cluster_name
이렇게 나옵니다. Unauthorized가 나와서 로그인을 해야 합니다.
aws eks update-kubeconfig \
--region <region-code> \
--name <cluster_name> \
--role-arn arn:aws:iam::<aws_account_id>:role/<role_name>
위 명령을 이용해 롤을 추가 합니다.
Kubectl get(k get)
전체 Pod보기
kube-system까지 보고 싶을 때 -A옵션을 붙입니다.
k get pod -A
env label이 dev인 pod들 보기
k get po -l env=dev
k get po -l env=dev
특정 노드에 띄운 pod만 보기
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=s<node_name>
nginx pod띄우기
kubectl run webserver --image=nginx:1.14 --port 80
실행가능여부 확인하기 --dry-run
kubectl run webserver --image=nginx:1.14 --port 80 --dry-run
deployment yaml파일 생성
kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml > webserver-pod.yaml
pod삭제
kubectl delete pod webserver
deployment삭제
kubectl delete deployments.apps mainui
webserver-pod.yaml로 pod띄우기
kubectl create -f webserver-pod.yaml
서비스 목록 보기
kubectl get svc
컨테이너 내부로 들어가기
kubectl exec webserver -it -- /bin/bash
컨테이너 ls루트에 memory-pd라는 디렉토리가 있는지
k exec memory-pd -- ls -lh | grep memory-pd
pods보기
kubectl get pods
log보기
kubectl logs webserver
kubectl logs -f deployment/python-app --since 1s
api리소스 목록 보기
kubectl api-resources
hello라는 이름의 api-resource만들기
kubectl create deployment hello --image=httpd
hello라는 이름의 pod의 deployment수정하기
kubectl edit deployments.apps hello
docker gcr로 배포 with build
docker build -t gcr.io/static-lens-266702/flask-test:v1 .
docker push gcr.io/static-lens-266702/flask-test:v1
Namespace
k create namespace blue # blue라는 이름의 namespace만들기
kubectl get pods -n default # namespace가 default인 pods보기
Deployment조회
k -n ns-hello-world describe deploy deployment-name
file copy
kubectl cp image_client.py <namespace>/<pod_name>:/app/
yaml파일 내용 확인
grep -i staticpod /var/lib/kubelet/config.yaml
-i <옵션> 에 입력한 키워드가 포함된 줄을 찾아서 출력 해줍니다.
메트릭 설치
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git
위 명령어로 clone한 후 해당 디렉토리로 이동합니다.
k apply -f . 으로 설치 합니다.
k top no, k top po 등으로 리소스 점유를 확인 할 수 있습니다.
Secret
kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123
필터링
kubectl describe po | grep -i Container > result-file.txt
describe했을 때 Container가 들어있는 부분만 result-file.txt에 저장하기
'Kubernetes' 카테고리의 다른 글
Vue.js앱을 k8s에 배포하는 경우 새로 고침 하면 404뜰 때 .Dockerfile (0) | 2021.10.13 |
---|---|
K8s 시크릿(secret) 만드는 법 (0) | 2021.09.07 |
Jenkins 쿠버네티스(K8s) 플러그인 git pull (0) | 2021.02.16 |
Ubuntu에 minikube설치하기, hello (0) | 2021.01.14 |
Flask App을 GCP K8s에 배포하기. Mac m1 (0) | 2021.01.05 |
- Total
- Today
- Yesterday
- docker container case
- docker container
- shellscript
- 도커컨테이너
- 개발자
- 도커티슈케이스
- 싱가폴
- 이직
- Sh
- 도커각티슈케이스
- vim
- docker container whale
- docker container tissue box
- 도커각티슈박스
- Linux
- docker container tissue
- 2017 티스토리 결산
- 도커티슈박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |