Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
엔터프라이즈 Kubernetes 운영자

Ops 관리자 또는 MongoDB Kubernetes 리소스 컨테이너 수정하기

배포서버 에 적용되는 template 또는 설정을 사용하여 Ops Manager 및 MongoDB database 리소스가 podTemplate 실행 파드의 컨테이너를 수정할 수 있습니다.

또는 에 추가할 수 template podTemplate 있는 필드를 검토 하려면 Kubernetes 설명서를 참조하세요.

template 또는 podTemplate 을(를) 사용하여 container를 생성하는 경우 Kubernetes 연산자는 containers 배열의 각 container에 제공한 name 에 따라 container 생성을 다르게 처리합니다.

  • name 필드 해당 리소스 이미지의 이름과 일치하는 경우, Kubernetes Operator는 또는 이 적용되는 파드의 Ops Manager 또는 MongoDB database 컨테이너 업데이트합니다. template podTemplate

    • Ops Manager: mongodb-enterprise-ops-manager

    • 백업 데몬 서비스: mongodb-backup-daemon

    • MongoDB database: mongodb-enterprise-database

    • 애플리케이션 데이터베이스: mongodb-enterprise-appdb

  • 필드 해당 name 리소스 이미지의 이름과 일치하지 않는 경우, Kubernetes Operator는 또는 이 적용되는 각 파드에 새 컨테이너 template podTemplate 생성합니다.

Pods의 컨테이너에 있는 온디스크 파일은 컨테이너 충돌 또는 재시작 시 유지되지 spec.podSpec.podTemplate 않습니다. 설정을 사용하면 볼륨 마운트를 추가하여 파드의 수명 동안 MongoDB database 리소스 에 데이터를 유지할 수 있습니다.

MongoDB database 리소스에 대한 볼륨 마운트를 만들려면 다음을 수행합니다.

  1. Kubernetes 연산자가 생성하는 데이터베이스 포드에 대한 container 볼륨 마운트를 포함하도록 MongoDB database 리소스 정의를 업데이트합니다.

    예시

    spec.podSpec.podTemplate 를 사용하여 볼륨 마운트를 정의합니다:

    podSpec:
    podTemplate:
    spec:
    containers:
    - name: mongodb-enterprise-database
    volumeMounts:
    - mountPath: </new/mount/path>
    name: survives-restart
    volumes:
    - name: survives-restart
    emptyDir: {}
  2. 업데이트된 리소스 정의를 적용합니다.

    kubectl apply -f <database-resource-conf>.yaml -n <metadata.namespace>

MongoDB 리소스 Docker 이미지는 RHEL에서 실행 RHEL의 기본값 시스템 구성을 사용합니다. 리소스 컨테이너에서 기본 RHEL 시스템 구성을 조정하려면 MongoDB 다음 설정 중 하나를 사용하여 권한이 있는 InitContainer 초기화 컨테이너 추가합니다.

예시

MongoDB database 리소스 Docker 이미지는 7200 의 RHEL 기본 keepalive 시간을 사용합니다. MongoDB는 데이터베이스 배포를 위해 120keepalive 시간을 더 짧게 권장합니다.

클라이언트와 데이터베이스 리소스 간의 통신에서 네트워크 시간 초과 또는 소켓 오류가 발생하는 경우 데이터베이스 리소스 Docker 이미지에서 keepalive 시간을 조정할 수 있습니다.

MongoDB database 리소스 container의 Docker 이미지를 조정하려면 다음을 수행합니다.

  1. MongoDB database 리소스 정의를 업데이트하여 Kubernetes Operator가 생성하는 데이터베이스 포드에 권한 있는 InitContainer를 추가합니다.

    예시

    spec.podSpec.podTemplate keepalive 값을 권장 값인 120 로 변경합니다.

    spec:
    podSpec:
    podTemplate:
    spec:
    initContainers:
    - name: "adjust-tcp-keepalive"
    image: "busybox:latest"
    securityContext:
    privileged: true
    command: ["sysctl", "-w", "net.ipv4.tcp_keepalive_time=120"]
  2. 업데이트된 리소스 정의를 적용합니다.

    kubectl apply -f <database-resource-conf>.yaml -n <metadata.namespace>

Kubernetes Kubernetes Operator가 리소스 MongoDB 정의를 사용하여 생성하는 각 Pod에 권한이 있는 InitContainer를 추가합니다.

데이터베이스 리소스 Pod에서 실행 컨테이너 에 대한 셸 세션을 열고 변경 사항을 확인합니다.

예시

이전 keepalive 예제를 수행하려면 다음 명령을 호출하여 현재 keepalive 값을 가져옵니다.

> kubectl exec -n <metadata.namespace> -it <pod-name> -- cat /proc/sys/net/ipv4/tcp_keepalive_time
> 120

MongoDB 매뉴얼의 운영 체제 구성 .

MongoDB Dockerfile 템플릿을 수정하여 사용 사례에 적합한 사용자 지정 Kubernetes 연산자 이미지를 만들 수 있습니다. 사용자 지정 이미지를 빌드하려면 다음이 필요합니다.

  • MongoDB 템플릿에서 수정된 사용자 지정 Dockerfile입니다.

  • 템플릿에 대해 MongoDB에서 제공하는 컨텍스트 이미지입니다.

컨테이너 이미지를 빌드 데 사용되는 Dockerfile은 MongoDB 엔터프라이즈 Kubernetes GitHub 리포지토리 에서 공개적으로 사용할 수 있습니다.

Dockerfile 디렉토리는 리소스 이름, 버전, 배포판별로 구성되어 있습니다.

├── <resource name>
│ └── <image version>
│ └── <base distribution>
│ └── Dockerfile template

사용하려는 템플릿을 자체 Dockerfile에 복사하고 원하는 대로 수정합니다.

MongoDB Dockerfile 템플릿에서 이미지를 빌드하려면 해당 컨텍스트 이미지를 제공해야 합니다.

각 Dockerfile 템플릿에는 원본 이미지와 동일한 Quay 레지스트리에서 검색할 수 있는 하나의 관련 컨텍스트 이미지가 있습니다. 컨텍스트 이미지에는 항상 형식으로 태그가 quay.io/mongodb/<resource-name>:<image-version>-context 지정됩니다.

docker build 에 컨텍스트 이미지를 제공하려면 imagebase 변수를 Quay.io 태그로 설정한 상태에서 --build-arg 옵션을 포함합니다. 여기서 <resource-name><image-version> 는 Dockerfile 템플릿과 일치합니다.

예시

모든 배포에 대해 mongodb-enterprise-database 버전 2.0.0 이미지를 빌드하려면 다음을 포함합니다.

--build-arg imagebase=quay.io/mongodb/mongodb-enterprise-database:2.0.0-context

mongodb-enterprise-operator 버전 1.9.1의 Ubuntu 배포는 기본적으로 ubuntu:1604 를 기반으로 합니다. 이 예제에서는 기본 Dockerfile 템플릿을 ubuntu:1804 을(를) 사용하도록 수정하고 myDockerfile 으로 저장합니다.

다음 명령은 사용자 지정 이미지를 빌드하고 1.9.1-ubuntu-1804 태그를 지정합니다.

cat myDockerfile | docker build --build-arg imagebase=quay.io/mongodb/mongodb-enterprise-operator:1.9.1-context \
--tag mongodb-enterprise-operator:1.9.1-ubuntu-1804 -

참고

로컬 디렉토리를 빌드 컨텍스트로 제공하는 대신 docker build 끝에 하이픈(-)을 포함하여 cat myDockerfile 의 출력을 읽습니다.

docker build 대해 자세히 학습 Docker 설명서를 참조하세요.

돌아가기

문제 해결

이 페이지의 내용