Azure의 펄스 별 docker 이미지
JWT용 Apache Pulsar Docker 이미지 사용자 정의
이 단계는 내가 원하는 것이지만, Azure나 다른 어느 곳에서도 필요없다.
Apache Pulsar에는 훌륭한 Docker 이미지가 있습니다.그러나 JWT나 기타 보안을 사용하는 사전 정의된 방법은 없습니다.이를 위해 사용자 정의 이미지를 만들고 JWT
/pulsar/conf/standalone.conf
를 사용하도록 변경했습니다.따라서 간단한 JWT 자동화 개발을 쉽게 수행할 수 있습니다.우선, 나는 공개 키와 개인 키를 생성한 다음, 개인 키를 사용하여 슈퍼 사용자에게 JWT를 생성한 다음, 에이전트가 통신할 수 있도록 슈퍼 사용자 JWT를 용기에 저장한다.이것은standalone에 이런 줄을 추가하는 것도 포함한다.만약 당신이 이러한 설정을 잊어버리면, 그들은 당신의 Pulsar에 그룹을 열거하지 않고, 임대인, 명칭 공간 등은 말할 것도 없다.변경이 필요한 행의 예# line number about 352
# Enable authentication
authenticationEnabled=true
# line number about 358
# Autentication provider name list, which is comma separated list of class names
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
#line number about 370
superUserRoles=superuser
#line number about 374-375
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
brokerClientAuthenticationParameters=file:///pulsar/superuser.jwt
# line 384
tokenPublicKey=file:///pulsar/my-public.key
조직 간의 차이에 주의하세요.아파치.펄스성.매니저님.인증AuthenticationProviderToken은 authenticationProviders와 org에 사용됩니다.아파치.펄스성.고객.impl.네?borker Auth의 Authentication Token.또한 TokenPublicKey, Pulsar을 설정해야 JWT를 검증할 수 있습니다.처음에 나는 공급자를 고객으로 삼았기 때문에 그것이 작용하지 않아서 약 20분 동안 D를 계산했다.
클라이언트도 수정했습니다.형태.
#line 35
authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
#line 42
authParams=file:///pulsar/superuser.jwt
bin 폴더와 웹소켓의 도구를 사용합니다.독립 실행형 버전과 동일한 설정을 구성합니다(행이 다를 수 있음).다음은 docker 그림입니다.나는 docker 공식 그림을 바탕으로 복제할 라인을 추가했다.jwtconf 파일.
FROM apachepulsar/pulsar:2.6.1
WORKDIR /pulsar
COPY my-private.key my-private.key
COPY my-public.key my-public.key
COPY superuser.jwt superuser.jwt
COPY client.conf conf/client.conf
COPY websocket.conf conf/websocket.conf
COPY standalone.conf conf/standalone.conf
CMD [ "/pulsar/bin/pulsar", "standalone", "-nfw", "-nss" ]
Azure 컨테이너 인스턴스
만약 당신이 이미 어떻게 하는지 알고 있다면, 우선 파일 공유를 만듭니다.pulsar가 리셋, 고장 등 상황에서 데이터를 저장할 수 있도록/pulsar/data 디렉터리를 저장할 수 있도록 pulsar가 필요합니다.Blob에 연결하는 방법을 아직 알지 못했기 때문에 파일 공유를 설치하고 있습니다.
이 문서를 작성할 때 Azure는 웹 인터페이스를 통해 마운트를 사용하여 컨테이너 인스턴스를 만드는 것을 지원하지 않으므로 터미널로 돌아갑니다.
az container create --resource-group RC_NAME --name CONTAINER_NAME \
--image YOUR_DOCKER_IMAGE_REPO/IMAGE_TAG \
--registry-username IMAGE_REPO_USERNAME \
--registry-password IMAGE_REPO_PASSWORD \
--dns-name-label SUBDOMAIN_PART_OF_URL_YOU_WANT \
--ports 8080 6650 \
--azure-file-volume-account-name STORAGE_ACC_NAME \
--azure-file-volume-account-key STORAGE_ACC_KEY \
--azure-file-volume-share-name pulsar \
--azure-file-volume-mount-path /pulsar/data \
--cpu 4 --memory 4
만약 네가 이 글을 읽었다면, 너의 4핵/4천메가 메모리는 아마 문제가 없을 것이다.마운트/펄스 별 용기 경로가 잘못되어 용기를 시작할 수 없습니다.만약/pulsar/conf와/pulsar/data 같은 이상의 경로가 필요하다면 템플릿을 통과해야 합니다./pulsar mount에서 실패한 이유는 처음 봤을 때 예상하지 못했을 때pulsar는 빈 파일 공유를 보고/pulsar/bin/pulsar 스크립트를 찾을 수 없기 때문에 Dockerfile에서 파일을 찾을 수 없는 최신 줄을 보고합니다.
마땅히 쓸모가 있어야 한다
몇 초/분 후에 용기의 실례가 시작되고 실행되는 것을 볼 수 있을 것입니다.
문제가 발생하면 Azure Support 팀에 전화하여 항상 XD를 지원합니다.
Reference
이 문제에 관하여(Azure의 펄스 별 docker 이미지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/greenroommate/pulsar-docker-image-on-azure-mf5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)