微服务部署 使用Docker 和 Kubernetes <十八> 译

Getting Started with Kubernetes

    Docker和Kubernetes都是Linux本地技术;所以,它们必须在Linux主机操做系统中运行。咱们假设大多数Java开发人员使用Windows或Mac开发,所以为了利用Docker和Kubernetes带来的强大功能,咱们须要在主机操做系统上使用客户Linux VM。您能够为您的环境下载Docker机器和工具箱,可是您须要手动安装Kubernetes(这可能有点棘手)。您可使用上游的Kubernetes 镜像,但就像任何快速移动的开源项目同样,这些镜像可能会迅速变化,有时会变得不稳定。此外,为了充分利用Docker的可移植性,最好在不一样环境之间使用至少相同的Linux内核,但最好使用相同的Linux发行版和版本。咱们还有别的选择吗?git

Microservices and Linux Containers

    为了开始使用Docker和Kubernetes开发微服务,咱们将利用一组名为RedHatContainerDevelopmentKit(CDK)的开发工具。CDK是免费的。
在包含Docker、Kubernetes和Web控制台的开发人员机器上运行的独立的小型VM(实际上,它是RedHatOpenShift,它基本上是具备其余开发人员自助服务和应用程序生命周期管理功能的Kubernetes的企业版;可是在本书中,咱们只使用Kubernetes API)。github

OpenShift?

    RedHatOpenShift 3.x是一个Apache v2许可的开源开发人员自助服务平台OpenShift Source,该平台已经被改造为使用Docker和Kubernetes。OpenShift曾经拥有本身的集群管理和编排引擎,可是因为Kubernetes为容器集群管理世界带来的知识、简单性和强大功能,尝试从新建立另外一个集群管理引擎是愚蠢的。更普遍的社区正汇集在Kubernetes周围,而红帽则所有与Kubernetes在一块儿。OpenShift有不少特性,但最重要的是它仍然是基于角色的Kubernetes,支持基于角色的访问控制、开箱即用的软件定义的网络、安全性、登陆、开发人员构建和许多其余东西。咱们在这里提到它,是由于咱们将在本书其他部分使用的Kubernetes的味道是基于OpenShift的。咱们还将使用oc OpenShift命令行工具,这些工具为咱们提供了更好的用户体验,并容许咱们轻松地登陆到Kubernetes集群,并控制将部署到哪一个项目中。咱们提到的CDK既有Kubernetes,也有OpenShift。在本书的其他部分,咱们将提到OpenShift和Kubernetes,它们能够互换,但使用OpenShift。shell

Getting Started with the CDK

    使用CDK,您能够在笔记本电脑上做为Docker容器构建、部署和运行您的微服务,而后选择经过OpenShift内部的其余应用程序生命周期管理功能或使用您本身的工具在交付管道中交付您的微服务。CDK最好的部分是运行在真实 VM中,它应该与您的开发、QA和生产环境相匹配。安全

    要启动cdk,请导航到安装目录和./Components/hril/hril-ose子目录,并键入如下内容:微信

    这将引导您完成供应过程并引导VM。VM将在TCP:/10.1.2.2:2376处公开Docker守护进程,在https:/10.1.2.2:8443处公开Kubernetes API。接下来,咱们须要为您的环境安装OpenShift oc命令行工具。这将容许咱们登陆OpenShift/Kubernetes并管理咱们的项目/名称空间。您能够本身使用kubectl命令,可是使用oc登陆命令更容易登陆,所以对于这些示例,咱们将使用oc。下载并安装oc客户端工具。网络

    下载并安装了cdk和oc命令行工具以后,咱们最不想作的事情就是设置两个环境变量,以便咱们的工具可以找到OpenShift安装和Docker守护进程。要作到这一点,导航到./Components/hril/hril-ose目录,并运行如下命令:分布式

    这将设置环境变量。您能够输出环境变量,并手动配置它们(若是您愿意的话):微服务

    咱们如今应该可以登陆运行在CDK中的OpenShift:工具


    您能够访问下列项目,而且能够切换 ‘oc下的项目<;Projectname>;’:开发工具

    让咱们建立一个新的项目/命名空间,部署咱们的微服务

    你应该准备好进入下一步了!

    虽然不须要运行这些示例,但为本机开发人员计算机安装DockerCLI也颇有用。这将容许您从开发人员的笔记本电脑中直接列出Docker镜像和Docker容器,而没必要登陆到VM。安装了DockerCLI后,您应该可以直接从命令行shell运行Docker(注意,前面讨论的环境变量应该设置):

Where to Look Next

    在本章中,咱们了解了在规模上部署和管理微服务的困难,以及Linux容器如何提供帮助。咱们能够利用不可变交付来减小配置漂移,启用可重复部署,并帮助咱们对应用程序进行推理,而无论它们是否在运行。咱们可使用Linux容器来启用服务隔离、快速交付和可移植性。咱们能够利用像Kubernetes这样的可伸缩的容器管理系统,并利用许多内置的分布式系统特性,好比服务发现、故障转移、健康检查(以及更多!)。在Kubernetes上部署时,您不须要复杂的端口切换或复杂的服务发现系统,由于这些问题已经在基础设施自己中获得了解决。要了解更多信息,请查看如下连接:

  • Kubernetes Reference Documentation
  • “An Introduction to Immutable Infrastructure” by Josha Stella
  • “The Decline of Java Application Servers when Using Docker Containers” by James Strachan
  • Docker docs
  • OpenShift Enterprise 3.1 Documentation
  • Kubernetes
  • Kubernetes Reference Documentation: Pods
  • Kubernetes Reference Documentation: Labels and Selectors Kubernetes Reference Documentation: Replication Controller Kubernetes Reference Documentation: Services

原文:

做者源码:https://github.com/redhat-developer/microservices-by-example-source

有什么讨论的内容,能够加我微信公众号:

相关文章
相关标签/搜索