Eclipse MicroProfile是一个用于优化微型服务体系结构的企业级Java的开源项目。基于MicroProfile的应用程序可以部署到Kubernetes上。本文介绍如何将示例应用程序部署到IBM Cloud Private上。
IBM Cloud private是一个基于 Kubernetes的平台,用于在本地运行云原生程序。它还配备了一个Docker镜像注册表。对于开发者来说,开发者将拥有一个社区版本,可以在一台虚拟机上运行所有的东西。
我使用的示例是一个简单的会议应用程序,此程序最初由 MicroProfile开发人员,稍后由IBM团队进行了一些细微的调整,用来展示IBM技术,类似于本周的开源项目 WebSphere Liberty。我的同事Animesh Singh和Ishan Gulhane已经记录了如何在Bluemix public上将这个示例部署到Kubernetes上。
将应用程序部署到IBM Cloud Private有不同的方法。我想稍后写一些关于使用交付管道的方法。下面,我将介绍在开发机器上如何通过命令行进行部署。
将示例部署到Bluemix public或IBM Cloud private的大多数步骤都是相同的。所以我在下面只记录两者有差异的地方。
The Microservice Builder Fabric通过helm命令进行安装,可以从安装文档或IBM Cloud的专用管理界面了解到。
在架构镜像之前,需要完成一些配置。需要更改开发机器的主机文件用来限定IP范围。另外,开发机器还需要配置Docker,使其能访问虚拟机上的Docker主机。这个过程有点棘手,特别是在Mac上。在一个终端中,调用这些命令:
ssh cluster@192.168.178.36
cd /etc/docker/certs.d/mycluster\:8500/
cp ca.crt/tmp/
在第二个终端中,运行这些命令:
sudo screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
mkdir /etc/docker/certs.d/
mkdir /etc/docker/certs.d/mycluster:8500/
cd /etc/docker/certs.d/mycluster:8500/
scp cluster@192.168.178.36:/tmp/ca.crt .
在此之后,你应该能够访问IBM Cloud Private(用户:admin,pw:admin)上的Docker注册表:
docker login mycluster:8500
docker build -t mycluster:8500/admin/microservice-vote-cloudant sample.microservicebuilder.vote
docker push mycluster:8500/admin/microservice-vote-cloudant
还有一个用来build和push六个镜像的脚本。如果你想使用它,请运行“./scripts/build_and_push_docker_images.sh mycluster:8500/admin”。
在push完镜像之后,你还可以在IBM Cloud专用管理界面中看到这些镜像。
在部署示例之前,需要先配置Kubernetes。打开管理界面(如https://192.168.178.36:8443)并选择“配置客户端”。将这些命令复制并粘贴到你的终端中。例如:
kubectl config set -cluster mycluster --server=https://192.168.178.36:8001 --insecure -skip -tls -verify=true
kubectl config set-context mycluster-context --cluster=mycluster
kubectl config set-credentials mycluster-user --token=eyJhbG ...... q_ATOQe-J2A
kubectl config set-context mycluster-context --user=mycluster-user --namespace=default
kubectl config use-context mycluster-context
'kubectl create -f manifests'开始部署需要花费几分钟的时间。通过http://192.168.178.36:30056/#/speakers访问该示例程序。
再次感谢Ansgar Schmidt帮助我完成设置。