Azure용 GKE의 etcd 문제 해결

이 페이지에서는 Azure용 GKE의 etcd 문제를 해결하는 방법을 설명합니다.

추가 지원이 필요하면 Cloud Customer Care에 연락합니다.

etcd 데이터 디스크 가득 참

etcd 데이터 디스크가 가득 차면 다음 오류가 발생하고 여러 다른 방식으로 관찰될 수 있습니다.

  • etcd 로그에 요청 쓰기에 대한 시간 초과 오류가 표시될 수 있습니다.

    rafthttp: failed to save KV snapshot (write /var/etcd/data/member/snap/tmp720030520: no space left on device)
    

    피어 연결에 대한 시간 초과 오류도 표시될 수 있습니다.

    rafthttp: health check for peer [peer-id] could not connect: dial tcp [peer-ip]:2380: i/o timeout
    etcd server doesn't start:
    
  • 직렬 포트 로그는 공간 부족으로 인해 etcd가 시작될 수 없음을 나타냅니다.

    failed on file /dev/stdout (No space left on device)
    

etcd 인스턴스 크기를 확인하려면 다음 방법 중 하나를 사용합니다.

SSH

  1. SSH를 사용해서 마스터 노드 중 하나에 연결하고 다음 명령어를 실행합니다.

    ETCDCTL_API=3 etcdctl --write-out=table endpoint status
    

    DB_SIZE 열은 다음 압축된 출력 예시에 표시된 것처럼 사용된 크기를 나타냅니다.

    +------------------+------------------+---------+---------+
    |    ENDPOINT      |        ID        | VERSION | DB SIZE |
    +------------------+------------------+---------+---------+
    | 10.240.0.17:2379 | 4917a7ab173fabe7 |  3.5.0  |   45 kB |
    | 10.240.0.18:2379 | 59796ba9cd1bcd72 |  3.5.0  |   45 kB |
    | 10.240.0.19:2379 | 94df724b66343e6c |  3.5.0  |   45 kB |
    +------------------+------------------+---------+---------+
    

콘솔

  1. 콘솔에서 Cloud Monitoring 페이지로 이동합니다.

    Cloud Monitoring 페이지로 이동

  2. 측정항목 탐색기를 선택합니다.

  3. metric etcd_mvcc_db_total_size_in_bytes 측정항목을 선택합니다.

이 문제를 해결하려면 스토리지 제공업체 및 운영체제의 적절한 절차에 따라 etcd에 맞게 데이터 디스크 크기를 조절합니다. 이후 etcd 성장을 고려해서 충분한 공간을 추가하세요.

  1. 디스크 크기를 조절한 후에도 디스크 공간에 대한 경고가 있는지 확인합니다.

    ETCDCTL_API=3 etcdctl alarm list
    
  2. 마지막 열이 NOSPACE를 보고하면 다음과 같이 알람을 해제합니다.

    TCDCTL_API=3 etcdctl alarm disarm
    

다음 단계

추가 지원이 필요하면 Cloud Customer Care에 연락합니다.