Ubuntu16.04 로컬 환경의 Azure ServiceFabric에서 컨테이너를 이동해 봅니다.
9126 단어 AzureServiceFabricmicroservices
소개
Azure ServiceFabric을 일단 움직여서 어떤 것인지 알고 싶어 공식 문서대로라고 생각해 보면 의외로 빠져서 절차를 정리합니다.
목표
Linux에서 처음 Service Fabric 컨테이너 응용 프로그램 만들기 로 다음을 할 수 있게 되는 것
절차
우분투에 ServiceFabric 개발 환경 구축
Linux에서 처음 Service Fabric 컨테이너 응용 프로그램 만들기 의 전제에 따라 다음을 설치합니다. Ubuntu의 경우
SetupServiceFabric.sh
를 실행하면 다른 도구도 설치할 수 있습니다. 반대로 DockerCE가 사전에 설치되어 있으면 위에서 설명한 셸을 실행하지 못합니다 (DockerCE와 뭔가 충돌합니다. 자세히 알 수 없음)Service Fabric SDK 및 도구을 Ubuntu에 빌드합니다.
전제조건에는 다른 DockerCE, ServiceFabricCLI를 설치하는 것으로 기재가 있습니다만, Ubuntu의 경우는 일괄적으로 인스톨 된다
SetupServiceFabric.sh
를 실행하면 별도 인스톨은 필요 없습니다.위의 페이지 Service Fabric SDK 및 도구을 발췌하면 다음 명령을 실행하면 OK입니다. 이제 로컬 환경에 ServiceFabric 클러스터가 빌드됩니다.
$ sudo apt-get -y install apt-transport-https
$ sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh | sudo bash
$ sudo /opt/microsoft/sdk/servicefabric/common/clustersetup/devclustersetup.sh
위의 명령이 성공하면 다음은 Linux에서 처음 Service Fabric 컨테이너 응용 프로그램 만들기 에서 python 앱이 동작하는 컨테이너를 AzureContainerRegistry, 이하 ACR에 push합니다 (링크처와 같은 조작이 되기 때문에 조작은 생략).
그런 다음 ServiceFabric 응용 프로그램을 배포하기 위한 생성기를 설치합니다.
컨테이너 및 게스트 실행 파일을 만들기 위한 Yeoman 생성기 설정 를 참조합니다.
발췌하면 다음 명령으로 OK입니다.
$ sudo add-apt-repository "deb https://deb.nodesource.com/node_8.x $(lsb_release -s -c) main"
$ sudo apt-get -y update
$ sudo apt-get -y install nodejs
$ sudo npm install -g yo
$ sudo npm install -g generator-azuresfcontainer
$ sudo npm install -g generator-azuresfguest
yo 명령으로 다음 오류가 발생하면 권한을 부여합니다. 참고
root@vagrant:~# yo azuresfcontainer
/usr/lib/node_modules/yo/node_modules/conf/index.js:128
throw err;
^
Error: EACCES: permission denied, open '/root/.config/insight-nodejs/insight-yo.json'
:(省略)
# chmod g+rwx /root /root/.config /root/.config/configstore
# chmod 777 -R /root/.config
# yo azuresfcontainer
_-----_ ╭──────────────────────────╮
| | │ Welcome to Service │
|--(o)--| │ Fabric Container │
`---------´ │ application generator │
( _´U`_ ) ╰──────────────────────────╯
/___A___\ /
| ~ |
__'.___.'__
´ ` |° ´ Y `
1 <?xml version="1.0" encoding="utf-8"?>
? Name your application mycontainer
1 <?xml version="1.0" encoding="utf-8"?>
? Name of the application service: myservice
? Input the Image Name: testcicd111601.azurecr.io/samples/helloworldapp
? Commands:
? Number of instances of guest container application: 1
? Enter the container host mapping in the following format, container_port:host_port or press enter if not needed: 80:4000
create mycontainer/mycontainer/ApplicationManifest.xml
create mycontainer/mycontainer/myservicePkg/ServiceManifest.xml
create mycontainer/mycontainer/myservicePkg/config/Settings.xml
create mycontainer/install.sh
create mycontainer/uninstall.sh
템플릿이 생성되면
mycontainer/mycontainer/ApplicationManifest.xml
에 자격 증명(ACR 사용자 이름, 암호)을 설정합니다. <Policies>
<ContainerHostPolicies CodePackageRef="Code">
+ <RepositoryCredentials AccountName="YourAccountName" Password="YourPassword" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="myserviceEndpoint"/>
</ContainerHostPolicies>
</Policies>
로컬로 구축한 ServiceFabric 클러스터와 ACR에 연결
# sfctl cluster select --endpoint http://localhost:19080
# docker login -u <YourAccountName> -p <YourPassword>
애플리케이션을 ServiceFabric 클러스터에 배포
# cd mycontainer
# ./install.sh
[1/6] files, ApplicationManifest.xml
Time left: 299 seconds
[2/6] files, _.dir
Time left: 299 seconds
[3/6] files, myservice02Pkg/ServiceManifest.xml
Time left: 299 seconds
[4/6] files, myservice02Pkg/_.dir
Time left: 299 seconds
[5/6] files, myservice02Pkg/config/Settings.xml
Time left: 299 seconds
[6/6] files, myservice02Pkg/config/_.dir
Time left: 299 seconds
Complete
/root/mycontainer02
구축한 개발 환경에서 간단한 컨테이너(Helloworld가 반환되는 RestAPI)를 동작시킨다
Service Fabric Explorer에 액세스 그러면 배포된 APPLICATION을 확인할 수 있습니다. 1로되어 있는지 확인합니다.
을 눌러 docker ps를 실행하여 로컬에 컨테이너가 배포되었는지 확인합니다.
ServerFabric 클러스터가 실행되는 시스템에서는 컨테이너가 실행 중임을 알 수 있습니다.
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32121cf2902d testcicd111601.azurecr.io/samples/helloworldapp "python app.py" 29 seconds ago Up 28 seconds 0.0.0.0:4000->80/tcp sf-2-b6b88f8d-512a-744f-ba94-fb402b2abac2
다음을 수행하여 응용 프로그램의 동작을 확인합니다.
# curl -X GET http://localhost:4000
Hello World!
잘 움직였다.
마지막으로
이제 Ubuntu16.04에서 Python 앱이 실행되는 컨테이너가 ServiceFabric 클러스터에 배포되어 앱이 제대로 작동하는지 확인할 수있었습니다. 하는 일은 HelloWorld 수준이었지만 개발 환경 정비와 ServiceFabric의 기본 배포 방법을 운영 기반으로 얇게 이해할 수있었습니다. 다음은 Azure의 클러스터에 배포하고 실행하고 싶습니다.
이상
Reference
이 문제에 관하여(Ubuntu16.04 로컬 환경의 Azure ServiceFabric에서 컨테이너를 이동해 봅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kita-atsushi/items/134035a9c917ab32c693텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)