inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

대세는 쿠버네티스 (초급~중급편)

ConfigMap, Secret - 실습

k8s naming convention이 궁금합니다.

1010

이수빈

작성한 질문수 1

1

일프로 강사님께.

 

안녕하세요. 일프로 강사님 강의를 잘 챙겨보고 있는 학생입니다. 강사님 수업을 듣고 기존 도커 컨테이너로 운영하고 있는 서비스를 로컬에서 k8s로 변경하면서 공부하고 있습니다.

 

제가 백엔드 개발을 주로 해서 yml 파일을 작성할 때 코드 컨벤션에 신경이 많이 쓰입니다. deployment나 service, configMap 등의 이름을 작성할 때 현업에서 사용하고 있는 컨벤션 등이 있다면 알려주실 수 있을까요? 찾아보니 유의미한 자료를 찾지 못해서 질문을 남깁니다.

 

좋은 강의 감사드립니다!!

docker kubernetes

답변 1

2

일프로

안녕하세요.

쿠버네티스에서 네이밍과 레이블의 이름들을 잘 만드는 건 중요합니다.

하지만 자바처럼 공식적이고 명료한 네이밍 컨벤션은 없기 때문에 인터넷에서 딱 마음에 드는 내용은 찾기 힘들꺼예요.

 

그래서 먼저 쿠버네티스 공식 문서로 리소스의 이름과 레이블/셀렉터의 이름 규칙에 대해서 대략적으로 알아야 하고

 

  • 쿠버네티스 공식 문서

이름 생성 규칙 : https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/names/

레이블과 셀렉터 규칙 : https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/labels/

 

다른 공식 오픈소스들에서는 어떻게 네이밍을 했는지 살펴봐야 합니다. 결국 마이크로 서비스 상에서의 트리구조인 기능들을 잘 표현할 수 있는 이름을 작명하는 게 가장 중요하고요. 결국 이름 자체는 소문자와 숫자 그리고 하이픈(-)을 사용해서 만듭니다.

 

  • 제 다른 강의에서 Promethues를 가지고 정리한 내용

image

그리고 현업에서 더 다양한 방법으로 만들기 때문에 말씀드리면 더 혼란이 가중될 꺼예요.

예를들어 frontend-service, database-deployment, redis-pod 이런식으로 리소스 유형을 포함 시켜서 만들기도 하고요.

그리고 dev-frontend, prod-database 같이 각 환경에 따라서 접두사를 추가하기도 합니다.

그리고 api-server-v2, frontend-v1.3 이렇게 리소스 버전을 붙이기도 하고요.

또, 그리고 us-east-db-replica, eu-cache식으로 클라우드 환경에서는 지리적인 영역을 접두사에 포함하기도 합니다.

또, 그리고 payment-system-queue, payment-system-db 처럼 각 시스템 별로 접두사를 주기도 해요.

 

그래서 이렇게 이름(라벨/셀렉터)를 통해서 그 시스템이 어떤 건지 명확하게 알 수 있게 만드는 게 중요하고요. 명령 규칙만 보자면 쿠버네티스 공식 문서에 아래 내용이 전부입니다.

  • 253자를 넘지 말아야 한다.

  • 소문자와 영숫자 - 또는 . 만 포함한다.

  • 영숫자로 시작한다.

  • 영숫자로 끝난다.

그리고 위 규칙은 Service의 경우 기능적으로 이 리소스 이름 자체가 DNS 이름으로도 쓰이기 때문에, 결국 우리가 인터넷에서 도메인으로 본 이름들이 쓰인다고 볼 수 있어요.

 

좀 느낌이 오셨나요?

0

이수빈

느낌 왔습니다!!

 

빠른고 상세한 답변 정말로 감사드립니다~!!

yml 작성하다가 에러 발생해서 문의 드립니다.

0

37

2

설치수업중에 질문드립니다.

1

54

2

기초다지기 설치 문의드립니다.

1

104

4

HPA 부분 Auto Scaler 설치하는 링크가 없습니다!!

1

64

3

클러스터 초기화 및 팟 네트워크 세팅시 문제가 있습니다

1

100

1

환경 구성에 있어서 질문드립니다

1

92

2

configMap 파일생성

1

77

2

dashboard에서 pod 생성이 되지 않습니다.

1

77

2

nodePort 서비스 접근 Client sent an HTTP request to an HTTPS server

1

74

2

대시보드 화면이 달라요 ㅠㅠ

1

58

2

대시보드 접근이 안됩니다!

1

98

2

Ingress실습에 난관이 있습니다

1

66

2

master 노드에서 ssh 로그인 창이 안뜨는 오류

1

82

3

안녕하세요 일프로님 궁금한 거 있습니다

0

50

1

7강 마지막 대시 보드 출력에 관한 문제

1

57

2

Could not resolve host: externalname1; Unknown error

0

59

2

Failed to create pod sandbox

1

89

2

자료실을 못 찾겠습니다 ㅜ ㅡ ㅜ

0

57

2

0/3 nodes are available

1

57

2

Back-off restarting fail~~

1

99

4

쿠버네티스 대시보드 접속 문제

1

89

2

설치관련 질문입니다

1

116

2

raw.githubusercontent.com 에 대한 질문

1

137

2

worker노드 추가시에

1

68

1