kind가 class라고 생각하고 그로부터 object가 만들어진다라고 생각하면 된다
kubectl도 원격 전송 명령 restful api다. 쿠버네티스에 원하는것을 전달하기 위한것.
pod kind replicaset kind를 통해서 쿠버네티스가 object를 만들어준다.
객체지향프로그래밍의 object같은것처럼 생각하면 됨
차이점은 method를 만들수 없고 적은 기능을 지원하는것
쿠버네티스에서 제공하는 object = resource들은 뭐가 있을까?
kubectl api-resources
우리는 pod이랑 replicaSet, Node,Deployment정도
쿠버네티스에서는 yaml파일 안에 원하는 resource type기재하고 object생성
그걸 record of intent를 쓰는 행위라고 이야기한다.
desired state는 docker swarm에게 내리는 명령. 그것보다 높은 레벨 = record of intent. 의미가 없다 그러면 desired state와 다를바 없다고 할 수 있는데
서버가 용량 넘어선다던지 네트워크가 죽는다던지 하면 event들이 쌓이고 터미널 원격접속해서 타이핑하고 하는데 이것도 데이터이고 명시적으로 쓰는게 아니고
나는 이러한 행위가 이루어졌으면 좋겠어라고 했을때 그 행위를 하기 위해서 인간들이 했었던 명령들이나 하면 좋을 작업들을 자동화하는 경우가 있는데 이런것들을 record or intent 데이터드리븐 ai를 쓴다.
record of intent를 우아하게 얘기하면 인간이 했떤 행위들을 기반으로 장애같은 것 대응같이 생산적인 일을 자동으로 수행하도록 하는 기능.
장애발생시에 루틴하게 사람들 타이핑한것 있는데 새로운 서비스는??
고객중에 해당하는 리스트 추출, 프로모션 코드 발송을 한다고 하면
서비스 개발하는 사람은 이런것들을 모아서 한줄한줄 쓰면 된다 이렇게 만들어진 프로그램은 굳이 프로그래밍 언어가 아니어도 된다. 생성형 ai에 해달라고 하면 자동으로 만들수 있다. 노코드
구현된 하부구조와 independent 비지니스 레이어에서 제공하는 api
함수의 level이 다르다. 하부구조를 몰라도 호출할 수 있다.
DDD 데이터 드리븐 개발.
상위레벨에서 불러쓰는건 마케팅 기획팀 등
시스템이 알아서 동작한다.
아무튼 kubernetes오브젝트는 객체지향 object와 같다
원하는 상태를 전달하면 쿠버네티스는 실행해주고
policy 어디에 돌아갈지 어떤 노드
쿠버네티스는 언어별로 api가 공식홈페이지에 올라와있다. client api
rest api이다. 공식적으로 지원 안되면 직쩝 짜서 써라 rust등
yaml파일안에있는 kind는 클래스고 object가 만들어진다
만들어달라고 요청방식 rest api json파일
yaml안에 쓰는걸 spec이라고 하고 status는 object가 만들어진것
pod만들고 replicaset만들었었는데
api호출 v1 api 호출하면 객체생성하는거 봤다. class이름인 kind
spec은 쿠버네티스에 의해 deploy되면 status로 쿠버네티스가 방어해준다
selector: 뭐 3개? 선택
mountPath본인이 폴더로 인식할 경로
replicaset은 쿠버네티스가 만든거
replicaset보다 상위개념 deployment
has관계 객체 안에 객체가 포함되고 있다
—type=NodePort 노드의 포트 클러스터를 구성하고있는 노드들 중 하나에 구멍 포트를 뚫는다. 쿠버네티스의 네트워크 기능. 특정노드를 지정해서 그 노드를 통해서만 외부와 통신하고싶을때 사용하는게 노드포트.
minikube service my-nodeport —url하면 url을 하나 준다.
터미널 열어서 curl수행하면 nginx니까
미니쿠베로 만든 쿠버네티스는 가짜 노드와 가짜 클러스터를 가지고 있다 그걸 미니쿠베가 감싸고 있다. 이들을 접근하려면 미니쿠베가 허락을 해야 뚫고 들어갈 수 있다
그러니까 minikube에게 부탁해서 방금 연 포트에 접근하고 싶으니 가짜 세상에 접근할 수 있도록 구멍뚫고 url달라 그럼 minikube실행되는 한 유지되는 연결통로 역할
쿠버네티스는 개발자가 아니라 운영하는 사람이 사용하는것이므로 용어가 좀 다르다