본문 바로가기
WIKI 기술 지식 베이스

Kubernetes serversTransport

원문 보기 위키 갱신

출처: Kubernetes serversTransport

본문

ServersTransport

ServersTransport를 사용하면 Kubernetes에서 Traefik과 HTTP 서버 사이의 연결을 구성할 수 있어요.

ServersTransport 객체를 만들기 전에 Traefik Kubernetes CRD를 Kubernetes 클러스터에 적용해야 해요.

이렇게 하면 ServersTransport kind와 기타 Traefik 전용 리소스가 등록돼요.

서비스에 다음과 같이 적용할 수 있어요:

  • IngressRoute의 services.serverstransport 옵션(서비스가 Kubernetes Service인 경우)

  • TraefikService의 serverstransport 옵션(서비스가 Kubernetes Service인 경우)

다른 네임스페이스의 ServersTransport CRD 참조

값은 namespace-name@kubernetescrd 형식이어야 하고, provider 레벨에서 allowCrossNamespace 옵션이 활성화되어야 해요.

safeNaming이 활성화되면 값은 namespace_name@kubernetescrd가 되며, provider가 생성하는 다른 이름들과 같은 _ 구분자를 사용해요.

Configuration Example (설정 예시)

serversTransport

apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default

spec:
  serverName: example.org
  insecureSkipVerify: true

IngressRoute

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: testroute
  namespace: default

spec:
  entryPoints:
    - web
  routes:
  - match: Host(`example.com`)
    kind: Rule
    services:
    - name: whoami
      port: 80
      serversTransport: mytransport

Configuration Options (설정 옵션)

| Field | Description | Default | Required | | serverstransport. serverName | SNI에 사용될 서버 이름을 정의해요. | | No | | serverstransport. insecureSkipVerify | 서버의 인증서 체인과 호스트 이름을 검증할지 제어해요. | false | No | | serverstransport. rootCAs | 서버 인증서를 검증할 때 사용할 루트 인증 기관 집합이에요. | | No | | serverstransport. certificatesSecrets | mTLS를 위해 서버에 제시할 인증서들이에요. | | No | | serverstransport. maxIdleConnsPerHost | 호스트별로 유지할 최대 유휴(keep-alive) 연결 수예요. | 0 | No | | serverstransport. disableHTTP2 | 서버와의 연결에 HTTP/2를 비활성화해요. | false | No | | serverstransport. peerCertURI | 서버 인증서 검증 중에 SAN URI와 매칭하는 데 사용할 URI를 정의해요. | "" | No | | serverstransport. forwardingTimeouts.dialTimeout | 서버에 대한 연결이 수립될 때까지 기다리는 시간이에요. 0이면 타임아웃이 없음을 뜻해요. | 30s | No | | serverstransport. forwardingTimeouts.responseHeaderTimeout | 요청(본문 포함 시)을 완전히 쓴 후 서버의 응답 헤더를 기다리는 시간이에요. 0이면 타임아웃이 없음을 뜻해요. | 0s | No | | serverstransport. forwardingTimeouts.idleConnTimeout | 유휴(keep-alive) 연결이 스스로 닫히기 전에 유휴 상태로 남아 있을 최대 시간이에요. 0이면 타임아웃이 없음을 뜻해요. | 90s | No | | serverstransport. forwardingTimeouts.readIdleTimeout | HTTP/2 연결에서 프레임이 수신되지 않으면 ping 프레임을 사용한 헬스 체크가 수행될 타임아웃이에요. 0이면 타임아웃이 없음을 뜻해요. | 0s | No | | serverstransport. forwardingTimeouts.pingTimeout | ping에 대한 응답이 수신되지 않으면 HTTP/2 연결이 닫힐 타임아웃이에요. 0이면 타임아웃이 없음을 뜻해요. | 0s | No | | serverstransport. spiffe.ids | SPIFFE ID를 허용해요. SPIFFE TrustDomain보다 우선해요. | | No | | serverstransport. spiffe.trustDomain | SPIFFE trust domain을 허용해요. | "" | No | | serverstransport. cipherSuites | 백엔드 서버에 연결할 때 사용할 암호화 스위트를 정의해요. | [] | No | | serverstransport. minVersion | 백엔드 서버에 연결할 때 사용할 최소 TLS 버전을 정의해요. | "" | No | | serverstransport. maxVersion | 백엔드 서버에 연결할 때 사용할 최대 TLS 버전을 정의해요. | "" | No |

CA Secret

CA 시크릿은 tls.ca 또는 ca.crt 키 중 하나에 base64로 인코딩된 인증서를 포함해야 해요.

더 알아보기 (Learn more)