IBM Cloud Kubernetes Service 에서 앱 문제점 해결
가상 사설 클라우드 클래식 인프라 Satellite
다음 단계는 클러스터 내의 애플리케이션 문제점을 해결하고 애플리케이션 오류 또는 문제점의 근본 원인을 찾는 데 도움이 됩니다.
IBM Cloud 의 상태 검토
- IBM Cloud 사용 가능 여부는 IBM Cloud 상태 페이지에서 확인하세요.
- Kubernetes 서비스 컴포넌트를 필터링하십시오.
- 제한사항 및 알려진 문제 문서를 검토하십시오.
- IBM Cloud 에서 사용하는 오픈 소스 프로젝트의 문제에 대해서는 IBM 오픈 소스 및 타사 정책을 참조하세요. 예를 들어 Kubernetes 미해결 이슈를 확인할 수 있습니다.
클러스터 상태 가져오기 및 공통 문제 검토
세부사항 수집 및 문제점 문서화
문제점에 대한 세부사항을 문서화할 때 가능한 구체적으로 설명하십시오. 예를 들어, Our app occasionally gets 502 Gateway errors when trying to retrieve transaction logs 는 특정하지 않으므로 유용하지 않습니다. 문제를 문서화하기 전에 가능한 한 범위를 좁혀야 합니다. 문제점을 문서화할 때 다음을 포함하십시오.
- 환경 아키텍처
- 관련된 구성 요소를 이해할 수 있도록 환경 아키텍처를 문서화했는지 확인하세요. 자세한 정보는 환경 아키텍처 문서화 를 참조하십시오.
- 오류 메시지 및 구성요소 세부사항입니다.
- 전체 오류 메시지를 제공하고 오류를 생성하는 컴포넌트에 대한 세부사항을 포함하십시오. 예를 들어, " clusterID ABCDEF의 세 앱 포드 모두 글로벌 로드 밸런서에서 GET /transaction-log에 대한 HTTPS 호출에서
HTTP 502 Gateway Error: Web server received an invalid response while acting as a gateway or proxy server...오류와 함께 가끔 실패합니다.". - 연결의 소스 IP, 대상 IP, 포트 및 프로토콜입니다.
- 예를 들어, " clusterID 가 ABCDEF인 Kubernetes 클러스터에 있는 세 개의 모든 앱 팟 (Pod). 때때로 소스 포드 IP는
172.22.5.10, 대상 IP는150.40.40.35포트 433입니다. 라는 오류와 함께 /transaction-logs를 GLB로 GET하려고 할 때 HTTPS 호출이 실패하는 경우가 있습니다. 프로토콜은 HTTPS 입니다. 다른 두 개의 GLB IP150.40.40.55및150.40.40.75" 와 마찬가지로 다른 팟 (Pod) 도 이 IP 주소를 사용합니다. - 문제점의 시작 날짜, 시간 및 빈도입니다.
- 다음 메시지 예시를 검토하세요.
- 이 문제점은 모든 연결 시도의 약 2%에 영향을 줍니다.
- 이 문제점은 19:00-21:00 UTC 사이에만 발생하며 이 시간 동안 모든 연결 시도의 약 5%에 영향을 줍니다.
- 이 문제점은 팟 (Pod) ID
XYZ에서 연결할 때 발생합니다. 문제점은 약 05:30 UTC에10/25/2023에서 시작되었습니다.
- 이미 수행한 조치의 문제점을 해결하십시오.
- 지금까지 시도한 내용과 문제점의 범위를 좁히는 데 도움이 되는 해당 시도의 결과를 문서화하십시오.
테스트를 실행하여 각 컴포넌트에서 규칙을 적용하거나 제외
- 전체 앱 플로우 외부에서 문제점을 다시 작성하십시오. 여기에는 다음이 포함될 수 있습니다.
- 별도의 시스템 또는 클러스터의 테스트 팟 (Pod) 에서
curl를 사용하여 백엔드 엔드포인트 또는 서비스에 연결하여 클라이언트가 문제점의 원인일 수 있음을 규칙하십시오. - 클라이언트 또는 클러스터의 테스트 팟 (Pod) 에서
www.ibm.com와 같은 알려진 엔드포인트에 연결하려고 시도합니다. 알려진 엔드포인트는 일관되게 작동하지만 실제 앱 엔드포인트는 작동하지 않는 경우 문제점을 좁히는 데 도움이 됩니다.
- 별도의 시스템 또는 클러스터의 테스트 팟 (Pod) 에서
- 테스트 클러스터를 사용하여 테스트 환경에서 문제점을 다시 작성하십시오.
- 테스트 클러스터에서 문제점을 다시 작성할 수 없는 경우 문제점의 가능한 소스로 테스트 클러스터와 실제 클러스터 사이의 차이에 초점을 맞출 수 있습니다.
- 테스트 클러스터에서 다시 작성할 수 있는 경우에는 클러스터 자체에 문제가 없을 수 있습니다. 또한 프로덕션 환경에 영향을 주지 않고 문제점의 범위를 더 좁히기 위해 테스트할 수 있는 환경이 있습니다.
추가 데이터 수집
앱 플로우, 표시되는 특정 오류 및 해당 오류가 발생한 위치를 알고 있으면 관련된 컴포넌트에서 더 자세한 데이터를 수집할 수 있습니다. 여기에는 다음 로그가 포함될 수 있습니다.
- 영향을 받은 컴포넌트에 대한 팟 (Pod) 및 프로세스 로그.
- 클러스터 노드 로그 (예:
syslog또는/var/log/messages). IBM Cloud Kubernetes Service 의 경우, 노드에서 직접 및 기타syslog로그를 얻을 수 있습니다. - 패킷 추적 정보. 실행
tcpdump은 패킷 추적 정보를 얻는 일반적인 방법입니다.
Slack에 참여하거나 유사한 문제에 대해 사용자 포럼을 검토하십시오.
- Kubernetes Service Slack에 게시하십시오.
- 외부 사용자인 경우 #general 채널에 게시하십시오.
- Kubernetes Service 도움말 또는 Stack Overflow와 같은 포럼을 검토하여 다른 사용자에게도 동일한 문제가 발생했는지 확인하십시오. 포럼을 사용하여 질문을 작성하는 경우 IBM IBM Cloud 개발 팀에서 확인할 수 있도록 질문에 태그를 지정하십시오.
- IBM Cloud Kubernetes Service 를 사용하여 클러스터 또는 앱을 개발하거나 배포하는 데 대한 기술적 질문이 있는 경우 Stack Overflow에 질문을 게시하고
ibm-cloud및containers에 질문을 태그합니다. - 포럼 사용에 대한 세부사항은 도움 받기를 참조하십시오.
- IBM Cloud Kubernetes Service 를 사용하여 클러스터 또는 앱을 개발하거나 배포하는 데 대한 기술적 질문이 있는 경우 Stack Overflow에 질문을 게시하고
다음 단계
문제가 계속되면 지원에 문의하십시오. 지원 케이스 열기 케이스 세부사항에는 관련 로그 파일, 오류 메시지 또는 명령 출력이 포함되어야 합니다.