> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Kubernetes

> Kubernetes 배포를 구성합니다 - 설정, 시크릿, 파일을 두는 위치와 기능별 안내 페이지.

Kubernetes 배포는 Toolkit과 동일한 환경 변수를 읽습니다. Toolkit 페이지에서 "`config/variables.env`에 추가하세요"라고 안내하는 경우, 해당 값을 ConfigMap `overleaf-env`에 넣거나, 비밀번호, 키 또는 토큰이라면 Secret `overleaf-secrets`에 넣으세요. 그런 다음 재시작합니다.

```bash theme={null}
kubectl -n overleaf apply -f 30-config.yaml        # after editing the ConfigMap
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"GITHUB_TOKEN_CIPHER_PASSWORD":"'"$(openssl rand -hex 32)"'"}}'
kubectl -n overleaf rollout restart deployment/overleaf
```

`config/overleaf.rc`의 값은 환경 변수가 아니라 Toolkit 설정입니다. 이를 대체하는 항목은 이 페이지 끝의 Q\&A를 참고하세요.

### 기능

Toolkit 구성의 각 기능마다 이곳에 페이지가 있으며, 해당 서비스, 설정, 네트워크 경로, 백그라운드 작업, 여러 레플리카에서 달라지는 점, 그리고 테스트 방법을 다룹니다.

| 기능 | 파드 내 서비스 | ConfigMap과 Secret 외에 필요한 것 |
| - | - | - |
| [인증](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication): [OIDC](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/oidc-authentication.md), [SAML](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/saml-authentication.md), [LDAP](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/ldap-authentication.md), [공개 접근](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/public-access.md), [reCAPTCHA](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/recaptcha.md), [비밀번호 제한](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/authentication/password-restrictions.md) | web | 클라이언트 시크릿, IdP 인증서, LDAP CA |
| [샌드박스 컴파일](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/sandboxed-compiles.md) | clsi | 모든 노드의 Docker Engine과 TeX Live 이미지 |
| [Pandoc 가져오기 및 내보내기](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/pandoc-import-and-export.md) | clsi, web | 모든 노드의 Docker에 있는 Pandoc 이미지 |
| [Git 연동](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/git-integration.md) | git-bridge(자체 파드), web, history-v1 | git-bridge StatefulSet과 Service 두 개 |
| [GitHub](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/github-synchronisation.md), [GitLab](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation.md), [Gitea](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/gitea-synchronisation.md) 동기화 | web | Git 연동 |
| [Dropbox 동기화](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation.md) | web, third-party-datastore, document-updater | Git 연동, 인터넷에서 접근 가능한 웹훅, 데이터베이스 인덱스 |
| [Zotero](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/zotero-integration.md), [Mendeley](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/mendeley-integration.md) 연동 | web | Secret의 암호화 비밀번호 |
| [MCP 서버](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/mcp-server.md) | web | Git 연동 |
| [AI 통합](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/ai-integration.md) | web, linked-url-proxy | – |
| [Overleaf Import API](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) | web, linked-url-proxy | – |
| [템플릿](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/templates.md) | web, filestore | 여러 레플리카의 경우 S3 |
| [외부 URL](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/external-url.md) | linked-url-proxy | `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS`에 공개 노드 주소 |
| [로깅](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/logging.md) | 모든 서비스 | 로그를 보관하기 위한 `/var/log/overleaf`의 볼륨 |
| [TLS 프록시](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/tls-proxy.md) | 인그레스 또는 로드 밸런서 | 파드 앞에서 TLS 종료 |
| [브랜딩](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/branding.md) | web | – |
| [현지화](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/localization.md) | web | 언어별 호스트 이름 하나 |
| [이메일 전송](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/email-delivery.md) | web | – |
| [Redis](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/redis.md) | 실시간 상태를 가진 모든 서비스 | – |
| [S3](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/s3.md) | history-v1, filestore | S3 서비스, 여러 레플리카에 필수 |
| [LaTeX 사용자 도움말 추가](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/adding-latex-user-help.md) | web | 파드가 위키에 접근할 수 있어야 함 |
| [수평 확장](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/horizontal-scaling.md) | 전체 | S3, 스티키 세션을 지원하는 로드 밸런서 |

### 인증서 및 기타 파일

일부 기능은 값 대신 파일 경로를 받습니다. SAML 인증서(`OVERLEAF_SAML_IDP_CERT`, ...), LDAP CA(`OVERLEAF_LDAP_TLS_OPTS_CA_PATH`), 또는 자체 호스팅 GitHub Enterprise, GitLab, Gitea를 위한 사설 CA(`NODE_EXTRA_CA_CERTS`)가 그렇습니다. 파일을 Secret에 넣고 Toolkit 페이지가 기대하는 위치인 `/var/lib/overleaf/certs`에 마운트하세요.

```bash theme={null}
kubectl -n overleaf create secret generic overleaf-certs --from-file=idp_cert.pem --from-file=ca.pem
```

```yaml title="40-overleaf.yaml (additions)" theme={null}
          volumeMounts:
            # ...
            - name: certs
              mountPath: /var/lib/overleaf/certs
              readOnly: true
      volumes:
        # ...
        - name: certs
          secret:
            secretName: overleaf-certs
```

그런 다음 ConfigMap에서 경로로 참조하고(예: `NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem`) 재시작하세요.

> [!WARNING]
>
> **암호화 비밀번호.** 사용하는 기능의 모든 `*_CIPHER_PASSWORD`를 Secret에 설정하세요. 그렇지 않으면 일부 기능은 처음 사용할 때 데이터 볼륨에 키 파일을 생성합니다. 레플리카가 하나라면 볼륨을 잃기 전까지는 동작하지만, 레플리카가 여러 개라면 각 레플리카가 서로 다른 키로 암호화하게 됩니다.

### Q\&A

> [accordion] `config/overleaf.rc`의 Toolkit 설정 중 어떤 것이 필요한가요?
>
> **답변:** Ayakaleaf Pro는 그중 어떤 것도 읽지 않습니다. Kubernetes에서 대응하는 항목은 다음과 같습니다.
>
> | `config/overleaf.rc` | Kubernetes |
> | - | - |
> | `OVERLEAF_LISTEN_IP`, `OVERLEAF_PORT` | Service(NodePort) 또는 인그레스 |
> | `SIBLING_CONTAINERS_ENABLED` | ConfigMap의 `SANDBOXED_COMPILES*`, 파드의 Docker 소켓 |
> | `GIT_BRIDGE_ENABLED` | [Git 연동](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/git-integration.md) |
> | `MONGO_ENABLED`, `REDIS_ENABLED`, `MONGO_URL`, `REDIS_HOST` | StatefulSet 또는 관리형 서비스, `OVERLEAF_MONGO_URL` 및 `OVERLEAF_REDIS_HOST` |
> | `REDIS_AOF_PERSISTENCE` | `20-redis.yaml`의 `--appendonly yes` |
> | `NGINX_ENABLED`, `TLS_*` | 인그레스 또는 로드 밸런서 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.