Kubernetes 및 Minikube(또는 Mac용 도커)가 설치되어 있다고 가정하면 다음 단계를 수행하여 로컬 미니쿠베 클러스터에 Nginx 침투 컨트롤러를 설정합니다. 이 자습서는 AWS의 Kubernetes 퀵 스타트 클러스터에서 실행됩니다. 퀵 스타트에 의해 생성된 Kubernetes 클러스터는 미션이 아닌 중요한 응용 프로그램과 Kubernetes의 작동 방식을 학습하는 데 적합합니다. 단일 영역 클러스터입니다. 마지막으로 이 자습서의 PHP 응용 프로그램은 프로덕션용이 아닌 데모 응용 프로그램입니다. 이 링크를 자신의 레지스트리에서 자신의 이미지에 대한 링크로 바꿉습니다. 전체 URL을 지정하지 않으면 Kubernetes는 이미지가 Docker Hub에 있다고 가정합니다. 데이터 로더-job.yaml 파일에서 이미지를 업데이트합니다: heptio/예제-php-dbconnect 스크립트가 있는 이미지에 연결하고 필요한 유틸리티가 있습니다. 명령을 업데이트: [/tmp/mysql-sakila-data-loader.sh”] 스크립트를 실행 합니다.

명령이 충분히 짧으면 스크립트에 넣는 대신 YAML 파일에서 실행할 수 있습니다(Jobs에 대한 Kubernetes 설명서 참조). 데모 응용 프로그램의 경우 이미지PullPolicy: 항상 버전 태그가 동일하더라도 배포를 만들 때 PHP 이미지의 최신 버전을 항상 확인합니다. 보다 강력한 devops 환경에서는 Kubernetes 롤링 업데이트 및 이미지 버전을 대신 활용하고 싶을 것입니다. kubernetes/예제에서 새 릴리스에 대한 알림을 원하십니까? 참고: 여기에서는 모든 것에 최신 버전을 사용하고 있지만 보다 강력한 devops 환경에서는 Kubernetes가 지원하는 PHP 응용 프로그램 이미지에 대한 버전 전환을 사용합니다. 이것은 Nginx 의 잉그레스 컨트롤러를 설정했습니다. 이제 Kubernetes 클러스터에서 침투 리소스를 만들고 외부 요청을 서비스에 라우팅할 수 있습니다. 그렇게 합시다. 이 응용 프로그램에 대 한 Kubernetes 개체를 만드는 순서는 실제로 중요 하지 않습니다 하지만 다른 개체는이 비밀을 사용 하 여, 그래서 그들은 100% 비밀을 만들 때까지 완료 되지 않습니다. 이제 자격 증명이 준비되었으므로 MySQL 서버를 만들어 보겠습니다.

다른 방법은 kubectl을 사용하여 클러스터에서 직접 비밀을 생성하는 것입니다. 자세한 내용은 Kubernetes 비밀 문서를 참조하십시오. Kubernetes는 필요할 때마다 이 파일의 비밀을 적극적으로 읽지 않습니다. 큐베네츠 시크릿 오브젝트를 만들려면 kubectl create -f secrets.yaml을 실행해야 합니다. 파일에서 무언가를 변경하는 경우 kubectl replace -f secrets.yaml을 실행하거나 새 비밀을 만들고 참조를 업데이트해야합니다. 응용 프로그램 수준에서 이미 사용된 것에 대한 비밀을 업데이트하는 경우 Kubernetes는 다른 Kubernetes 개체 수준 아래에서 비밀을 업데이트하는 방법을 모르므로 응용 프로그램 내에서 별도로 업데이트해야 합니다. 또한 응용 프로그램 코드의 아무 곳에도 MySQL 자격 증명을 저장할 필요가 없습니다. Kubernetes는 이전에 구성한 비밀의 값을 읽고 환경 변수를 통해 포드에 전달합니다. 아래에서 특정 환경 변수를 살펴보겠습니다.

그거에요. 이제 Kubernetes 클러스터의 나머지 부분에서 비밀을 사용할 수 있으며 다음 단계로 계속 진행할 수 있습니다. 좋은! 모든 것이 순서대로 보이는 경우 이 이미지를 Docker Hub로 푸시하여 Kubernetes 클러스터에서 사용할 수 있도록 하겠습니다. 원하는 경우 대신 다른 레지스트리를 선택할 수 있습니다.