Consul을 v1.2.x로 업그레이드
Consul을 v1.2.x로 업그레이드
Consul 배포를 v1.2.x로 업데이트하고 복제 데이터를 유지하는 방법을 설명해 드릴게요. 여러 데이터센터 구성을 복제를 유지하면서 업그레이드하는 절차를 살펴볼게요.
출처: 문서
본문
이 페이지는 Consul 배포를 v1.2.x로 업데이트하고 복제 데이터를 유지하는 방법을 설명해요.
소개
이 가이드는 복제를 유지하면서 Consul >= 0.8.5 및 < 1.2.4 버전을 사용하는 다중 데이터센터 Consul 배포를 가장 잘 업그레이드하는 방법을 설명해요. 0.8.5보다 오래된 버전이지만 0.8.x 시리즈에 있다면 일반 업그레이드 프로세스를 따라 0.8.5로 업그레이드해 주세요. 0.8.0보다 오래된 버전이라면 지원팀에 문의해 주세요.
이 가이드에서는 두 데이터센터(DC)가 있는 예시를 사용하며 DC1과 DC2로 부를게요. DC1이 기본 데이터센터예요.
요구 사항
- 모든 Consul 서버는 Consul >= 0.8.5 및 < 1.2.4 버전이어야 해요.
- 이 업그레이드를 문서대로 수행하려면 최소 3개 노드가 있는 Consul 클러스터가 필요해요. 단일 노드 클러스터 또는 WAN으로 연결된 여러 단일 노드 클러스터가 있다면 업그레이드 후 서버가
No cluster leader루프에 빠질 거예요. 그런 경우 여기에 설명된 방법으로 클러스터를 복구해야 해요. 업그레이드 전에 클러스터를 3개 노드로 키우면 이 문제를 완전히 피할 수 있어요.
가정
이 가이드는 다음을 가정해요:
- 최소 두 개의 데이터센터가 구성되어 있고 ACL 복제가 활성화되어 있어요. 여러 데이터센터를 사용하지 않는다면 따라 하되 복제 관련 지침은 건너뛰면 돼요.
고려 사항
1.0.8에서 업그레이드할 때 문제를 일으킬 수 있는 큰 변경 사항은 많지 않지만, 주목할 만한 변경 사항은 특정 버전 세부 정보 페이지에 명시되어 있어요. 더 세부적인 정보는 전체 변경 로그에서 찾을 수 있어요. 업그레이드 전에 이러한 변경 사항을 검토하는 것을 적극 권장해요.
절차
1. 해당 DC의 consul 서버에서 다음 curl 명령을 실행하여 DC1의 복제 상태를 확인해 주세요:
$ curl --silent --header "X-Consul-Token: $MASTER_TOKEN" localhost:8500/v1/acl/replication?pretty
다음과 유사한 출력이 표시되어야 해요:
{
"Enabled": false,
"Running": false,
"SourceDatacenter": "",
"ReplicatedIndex": 0,
"LastSuccess": "0001-01-01T00:00:00Z",
"LastError": "0001-01-01T00:00:00Z"
}
기본 데이터센터(acl_datacenter로 표시)는 항상 복제가 비활성화된 것으로 표시되므로, 복제가 일어나고 있어도 이는 정상이에요.
2. 해당 DC의 consul 서버에서 다음 curl 명령을 실행하여 DC2의 복제 상태를 확인해 주세요:
$ curl --silent --header "X-Consul-Token: $MASTER_TOKEN" localhost:8500/v1/acl/replication?pretty
다음과 유사한 출력이 표시되어야 해요:
{
"Enabled": true,
"Running": true,
"SourceDatacenter": "dc1",
"ReplicatedIndex": 9,
"LastSuccess": "2020-09-10T21:16:15Z",
"LastError": "0001-01-01T00:00:00Z"
}
3. 일반 업그레이드 프로세스를 따라 모든 DC의 Consul 에이전트를 버전 1.2.4로 업그레이드해 주세요. 한 번에 하나의 DC씩 수행하고, 기본 DC를 마지막에 남겨 두어야 해요.
4. 해당 DC의 consul 서버에서 다음 curl 명령을 실행하여 DC2에서 복제가 여전히 작동하는지 확인해 주세요:
$ curl --silent --header "X-Consul-Token: $MASTER_TOKEN" localhost:8500/v1/acl/replication?pretty
다음과 유사한 출력이 표시되어야 해요:
{
"Enabled": true,
"Running": true,
"SourceDatacenter": "dc1",
"ReplicatedIndex": 9,
"LastSuccess": "2020-09-10T21:16:15Z",
"LastError": "0001-01-01T00:00:00Z"
}
업그레이드 후 구성 변경
Consul 1.0.0 이전 버전에서 이동했다면 많은 구성 옵션이 이름이 바뀐 것을 알게 될 거예요. 하위 호환성이 유지되었으므로 기존 구성 옵션은 업그레이드 후에도 계속 작동하지만, 새 버전으로 이동할 때 문제를 피하려면 지금 업데이트해야 해요.
전체 변경 목록은 여기에서 확인할 수 있어요:
consul validate $CONFIG_FILE1_PATH $CONFIG_FILE2_PATH ...를 사용하여 기존 구성 파일을 복사하고 변경한 다음 확인함으로써 구성 변경이 유효한지 확인할 수 있어요.
구성이 검증 검사를 통과하면 기존 구성 파일을 새 파일로 교체하고 각 데이터센터에서 리더 에이전트를 마지막에 남겨 두면서 서버를 하나씩 천천히 다시 롤링해 주세요.