Imperative Commands 뜻

> "kubectl create", "kubectl delete", "kubectl apply"와 같은 형태
> 이는 선언형 접근 방식(예: YAML 파일을 사용하여 리소스를 정의하고 관리하는 방법)과 대조됨

 

<1>

대충 명령어로 해결할 수 있는건데, yaml을 써서 해결해야하는 경우도 있다는걸 말해주는 듯

 

<2>

pod 생성엔 kubectl run 사용

 

<3>

pod 생성시 label 설정엔 --labels 사용

 

 

<4>

service 생성엔 kubectl expose 사용

kubectl expose <리소스명> <리소스이름> --name=<service이름> --port=<포트>

 

 

<5>

deployments 생성엔 kubectl create 사용

kubectl create deployment <이름> --image=<> --replicas=<>

그런데 create deployments 하니까 안되네, create deployment 로 해야 맞는거같다.

 

<6>

 

<7>

 

<8>

 

<9>

service를 생성할땐 kubeclt expose,

주의할점: type 설정에 ClusterIP << 대문자 틀리면 안된다

targetPort 설정엔 --target-port << targetPort 가 아니다

targetPort를 설정해줬다면, port 도 설정해줘야한다.

 

 

 

<1>

 

<2>

ㅇㅇ

 

<3>

 

<4>

 

<5>

 

<6>

 

<7>

deployments 의 줄임말은 deploy 였다.

 

<8>

 

<9>

No

 

<10>

vi 명령어로 파일 수정

이 행위를 통해, webapp-service 라는 이름을 가진 service를 만드는데

타입은 NodePort 이다. NodePort는 특정 포트를 통해 외부로부터 트래픽을 들어올 수 있게 만든다. 

여기선 30080 라는 포트로 들어올 수 있게 했다.

그리고 떠있는 deployment 를 보면 simple-webapp-deployment 가 있는데, 이것의 label이 name=simple-webapp 이다.

방금 만든 service가 selector로 name=simple-webapp 설정해줘서, 서로 똑같으니까 엮이는 것

 

<11>

pod가 떠있는 node:<port번호> 치면 연결시도 한다.

계속 쳐보니 떠있는 4개의 pod 중 랜덤으로 들어가려 하는게 보인다.

자동으로 트래픽분산 시켜주는 듯 하다.

service 지워봤더니 연결안됨.

<1>

namespace가 엄청 많으면 어떻게 세나 싶어서 solution 봤더니

--no-headers 옵션에 wc -l 넣어서 갯수 세는 방법이 있었다.

 

<2>

 

<3>

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run

 

Kubectl Reference Docs

 

kubernetes.io

이 곳에  pod 를 간단히 실행시키려면 run 명령어를 쓸 수 있다는 내용이 있다.

 

<4>

-A 옵션은 모든 namespace를 뒤져서 찾아준다.

 

<5>

 

<6>

 

<7>

서로다른 namespace에 있는 service(clusterIP)와 pod를 엮으려면 

<service-name>.<namespace>.svc.cluster.local

이런식으로 통신해야한다고함.

인터넷 검색으로 알아내었다.. 솔루션 보면 그냥 db-service.dev.svc.cluster.local 저렇게 하라고만 써있다.

<1>

 

<2>

replicaSets 줄임말 rs 사용

 

<3>

 

<4>

 

<5>

 

<6>

 

<7>

 

<8>

 

<9>

 

<10>

 

<11>

 

apiVersion 이 안맞다고 하는 것 같다.

kubernetes 공홈 -> replicaSets 검색, 보니까 apiVersion 이 apps/v1 이다

vi replicaset-definition-1.yaml 로 수정

 

<12>

 

<13>

 

<14>

kubectl edit 으로 바꿔줬는데, 갱신이 안돼서 pod 전부 kill 했더니 된다.

 

<15>

 

<16>

 

<1>

 

 

<2>

kubernetes 공식홈페이지에 pod 검색

참고, 메모장에 옮겼다가 수정

 

 

 

<3>

 

 

<4>

 

<5>

 

<6>

 

<7>

 

<8>

 

<9>

 

<10>

 

<11>

 

<12>

 

<13>

kubectl edit pod <pod명> 사용

linux 에서 vi 로 파일탐색할때 i 누르면 수정모드로 들어간다. 그리고 수정 후 ctrl+c 누르면 되돌아나온다.

:wq! 쳐서 저장+종료+강제 실행

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts