加入收藏 | 设为首页 | 会员中心 | 我要投稿 吕梁站长网 (https://www.0358zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

微服务架构在Kubernetes上的实现

发布时间:2019-07-12 22:57:17 所属栏目:评测 来源:新牛哥
导读:【编者的话】本文是微服务网格系列的第二部分,通过Kubernetes这个当前最流行的微服务部署平台,来具体讲解微服务的部署过程,让用户对微服务有具体认知,同时为后续结合Istio部署更复杂服务打下基

现在我们只需要构建它。 选择一个镜像tag,然后运行以下两个Docker命令来构建和保存镜像:

  1. # Build the container on your local machine 
  2. docker build -t <image-tag> . 
  3. # Push the container to docker registry 
  4. docker push <image-tag> 

在我们部署之前还有一步。虽然我们已经定义了将进入我们的Pod的内容,但我们还没有定义我们的服务。让我们做一个简单的服务定义,称为Hello Service。我们将它保存在hello-service.yml服务定义文件中。

  1. apiVersion: v1 
  2. kind: Service 
  3. metadata: 
  4. name: helloworld-v1 
  5. spec: 
  6. ports: 
  7.   - port: 80 
  8.   protocol: TCP 
  9.   targetPort: 8080 
  10. selector: 
  11.    app: helloworld-v1 
  12. type: LoadBalancer 
  13.  
  14. --- 
  15.  
  16. apiVersion: apps/v1 
  17. kind: Deployment 
  18. metadata: 
  19. name: helloworld-v1 
  20. labels: 
  21.   app: helloworld-v1 
  22. spec: 
  23. replicas: 1 
  24. selector: 
  25.   matchLabels: 
  26.      app: helloworld-v1 
  27. template: 
  28.   metadata: 
  29.      labels: 
  30.         app: helloworld-v1 
  31.   spec: 
  32.      containers: 
  33.         - name: helloworld-kubernetes 
  34.         # replace <image-tag> with your actual image 
  35.           image: <image-tag> 
  36.           ports: 
  37.             - containerPort: 8080 

现在我们已经拥有了所需的一切。我们的镜像已经构建,我们已经根据它定义了一项服务。现在我们终于可以使用Kubernetes来部署它了。我们将使用kubectl命令行工具将其部署在我们的集群上:

  1. kubectl apply -f helloworld-go-v1.yaml 

要获取服务负载均衡器IP,请运行以下命令:

  1. kubectl get svc helloworld-v1 -o wide 

记下外部IP。

现在,当我们访问负载均衡器地址时,我们可以看到已部署的服务。它并不多,但“Hello World”向我们展示了这一切都奏效了!

关键组件

构建此服务使我们能够演示大多数主要的Kubernetes组件。首先,我们布置了Dockerfile来为服务创建代码。要在Kubernetes中实际创建服务,我们需要使用YAML来定义它。我们的定义采用我们定义的镜像并提供一些关键信息:应该部署的位置,版本以及其他配置信息。

之后,我们在Pod上部署了该服务。在Kubernetes模型中,Pod与容器密切相关。许多部署(如我们的部署)使用单个Pod进行服务。严格来说,Kubernetes不管理容器,它管理。有时这些容器与Pod有一对一的关系,有时候有多个容器关联到一个Pod。

最后,我们看到了编排的原则。在定义了我们希望如何部署API之后,我们只是将配置文件推送到Kubernetes并完成其余工作。使用kubectl,我们能够指定我们想要的架构,Kubernetes负责其余的工作。当我们稍后查看更复杂的示例时,通过多个版本和复杂的部署,我们将更清楚地看到这个简单想法的强大功能。

深入了解

部署简单的服务只是一个开始。Kubernetes原生支持微服务,它能用很好的方式来部署基本的,甚至更复杂的微服务架构,而不会有太多的麻烦。但要真正利用微服务的可扩展性,你还需要知道更多。

(编辑:吕梁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读