部署Online Boutique 项目在 Kubernetes并启用 Istio 支持

这篇具有很好参考价值的文章主要介绍了部署Online Boutique 项目在 Kubernetes并启用 Istio 支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.安装k8s docker desktop版 并配置镜像源

二.安装Istio

https://zhuanlan.zhihu.com/p/506007550

1.在github中下载windows版本的istio.exe,解压后 将/bin目录放入path变量中。

2.运行cmd,检查一下 istio 环境以及版本信息:

$ istioctl version

3.开始使用 demo 配置文件进行 Istio 安装:(这一步可能需要科学上网,我设置了全局代理才下载成功)

$ istioctl install --set profile=demo

4.验证是否下载成功

$ kubectl -n istio-system get deploy
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
istio-egressgateway    1/1     1            1           9m49s
istio-ingressgateway   1/1     1            1           9m49s
istiod                 1/1     1            1           10m

三.部署Online Boutique 应用到k8s

1.git clone Online Boutique项目

2.先不要

kubectl apply -n microservices-demo -f kubernetes-manifests.yaml

可以在https://console.cloud.google.com/gcr/images/google-samples/global/microservices-demo

中找到docker pull命令,在github中创建Dockerfile文件(放在11个目录下),然后用阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

创建镜像,参考国内顺畅下载k8s.gcr.io的镜像_上海_运维_Q先生的博客-CSDN博客_https://k8s.gcr.io/v2/ 

3.然后 

docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/checkoutservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/adservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/cartservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/currencyservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/emailservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/frontend:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/loadgenerator:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/paymentservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/productcatalogservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/recommendationservice:0.3.7
docker pull registry.cn-hangzhou.aliyuncs.com/lusilin/shippingservice:0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/checkoutservice:0.3.7 gcr.io/google-samples/microservices-demo/checkoutservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/adservice:0.3.7 gcr.io/google-samples/microservices-demo/adservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/cartservice:0.3.7 gcr.io/google-samples/microservices-demo/cartservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/currencyservice:0.3.7 gcr.io/google-samples/microservices-demo/currencyservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/emailservice:0.3.7 gcr.io/google-samples/microservices-demo/emailservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/frontend:0.3.7 gcr.io/google-samples/microservices-demo/frontend:v0.3.7
docker tag  registry.cn-hangzhou.aliyuncs.com/lusilin/loadgenerator:0.3.7 gcr.io/google-samples/microservices-demo/loadgenerator:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/paymentservice:0.3.7 gcr.io/google-samples/microservices-demo/paymentservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/productcatalogservice:0.3.7 gcr.io/google-samples/microservices-demo/productcatalogservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/recommendationservice:0.3.7 gcr.io/google-samples/microservices-demo/recommendationservice:v0.3.7
docker tag registry.cn-hangzhou.aliyuncs.com/lusilin/shippingservice:0.3.7 gcr.io/google-samples/microservices-demo/shippingservice:v0.3.7

4.创建namespace,并为 POD 额外注入一个 SideCar 应用,可以手动注入,也可以为整个命名空间添加 istio-injection=enabled 标签实现自动注入。

kubectl create ns microservices-demo
kubectl label ns microservices-demo istio-injection=enabled

5.在git clone 下来的目录下打开cmd,部署应用

kubectl apply -f ./release/kubernetes-manifests.yaml --namespace=microservices-demo

查看部署的pod情况 ,可以看到已经注入了SideCar。

kubectl get pod -n microservices-demo
NAME                                     READY   STATUS    RESTARTS      AGE
adservice-cf67f4d57-k5gp7                2/2     Running   0             99s
cartservice-659768978f-x6lh4             2/2     Running   2 (82s ago)   100s
checkoutservice-685bbcccbc-bfgxp         2/2     Running   0             100s
currencyservice-6f8b7fc7f9-2jkdl         2/2     Running   0             99s
emailservice-594db85977-fqlxm            2/2     Running   0             100s
frontend-67fbdd4fc-z9xbt                 2/2     Running   0             100s
loadgenerator-557cf6649-8wfcc            2/2     Running   0             100s
paymentservice-85cc844df-dccm2           2/2     Running   0             100s
productcatalogservice-7f989bc99-4fb7m    2/2     Running   0             100s
recommendationservice-68878fdf99-nljc7   2/2     Running   0             100s
redis-cart-7667674fc7-98kvz              2/2     Running   0             99s
shippingservice-5cd69dd957-5gkh4         2/2     Running   0             99s

6.查看service,并将frontend-external pod删除。

>kubectl get svc -n  microservices-demo
NAME                    TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
adservice               ClusterIP      10.101.92.180    <none>        9555/TCP       2m23s
cartservice             ClusterIP      10.108.36.16     <none>        7070/TCP       2m23s
checkoutservice         ClusterIP      10.110.200.229   <none>        5050/TCP       2m23s
currencyservice         ClusterIP      10.99.11.2       <none>        7000/TCP       2m23s
emailservice            ClusterIP      10.106.13.19     <none>        5000/TCP       2m23s
frontend                ClusterIP      10.96.232.105    <none>        80/TCP         2m23s
frontend-external       LoadBalancer   10.111.167.114   <pending>     80:30370/TCP   2m23s
paymentservice          ClusterIP      10.99.191.39     <none>        50051/TCP      2m23s
productcatalogservice   ClusterIP      10.108.236.225   <none>        3550/TCP       2m23s
recommendationservice   ClusterIP      10.111.210.14    <none>        8080/TCP       2m23s
redis-cart              ClusterIP      10.107.242.161   <none>        6379/TCP       2m23s
shippingservice         ClusterIP      10.98.109.70     <none>        50051/TCP      2m23s
>kubectl delete svc frontend-external -n  microservices-demo

7.查看istio-manifests.yaml,可以看到它提供的tcp端口 80 

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: frontend-gateway
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

8.打开127.0.0.1:80,可以看到完成部署部署Online Boutique 项目在 Kubernetes并启用 Istio 支持文章来源地址https://www.toymoban.com/news/detail-493813.html

到了这里,关于部署Online Boutique 项目在 Kubernetes并启用 Istio 支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java微服务架构的选择:Spring Cloud、Kubernetes还是Kubernetes + Istio?

    微服务架构已经成为现代软件开发的趋势,其可以带来高度可伸缩性、松耦合性和团队自治性等优势。 在Java开发领域中,选择适合的微服务架构是非常关键的决策,本文将探讨Spring Cloud、Kubernetes和Kubernetes+Istio这三个架构选择的优势和劣势。 1. 简介 在开始具体探讨之前,我

    2024年02月22日
    浏览(56)
  • Istio:如何优化Kubernetes中的服务可靠性

    作者:禅与计算机程序设计艺术 在微服务架构的日益流行和普及下,越来越多的公司都在探索基于容器技术、Service Mesh 和 Kubernetes 的新型应用架构模式。而 Service Mesh 则是 Service Proxy 的一种实现方式,通过它能够在分布式环境下提供服务间的流量控制、熔断、监控等功能。

    2024年02月05日
    浏览(44)
  • 在Mac本地搭建Kubernetes和Istio的详细教程

    Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。而Istio是一个服务网格,用于管理和连接微服务,提供负载均衡、流量控制、故障恢复等功能。本文将详细介绍如何在Mac本地使用kind(Kubernetes in Docker)工具搭建Kubernetes集群,并在

    2024年02月13日
    浏览(38)
  • 使用Istio的Envoyfilter做kubernetes的出口http拦截

    以下步骤均在无法访问docker.io的集群下操作,如果集群可以连接docker.io,则不需要准备镜像包,直接在docker.io中拉取即可 部署在kubernetes中的pod,在往外部请求的时,外部服务期望能知道是哪个pod调用的,以保证数据安全,在外部服务之前,用abac配置了对pod的环境限制,比方

    2024年02月21日
    浏览(46)
  • 5分钟安装Kubernetes+带你轻松安装istio服务网格指南

    上次我跟大家简单介绍了一下Kubernetes的各个组件及其含义,本期本来计划带领大家一起学习一些常用命令,但我认为这种方式可能无法达到学习的效果。有可能你们会直接忘记,甚至可能没有兴趣去学。我也理解,心想这跟我有什么关系,我本地又搭建不起来K8s。 我一直坚

    2024年02月04日
    浏览(48)
  • Kubernetes技术--部署实际的java项目部署

    1.容器交付流程 (1).总体的流程如下所示: (2).k8s部署项目细节流程(详细过程) 2.java实际项目部署 (1).准备java项目,把项目打成jar包或者war包,这里需要依赖两个环境:jdk和maven环境。 使用mvn clean package进行打包,如下所示

    2024年02月10日
    浏览(31)
  • Istio微服务治理网格基本使用以及与Kubernetes集成的架构(三)

    Istio在程序中注入Sidecar的方式有两种:分别是手动注入和自动注入。 手动注入是通过Istio命令将Sidecar Proxy程序注入到已经存在的资源编排YAML文件里,手动注入通常适用于程序已经在K8S集群中部署的环境,可以通过 istioctl kube-inject 命令将Proxy的YAML参数与程序的YAML进行结合,然

    2023年04月14日
    浏览(58)
  • kubernetes集群部署springcloud项目【AL】

    kubernetes集群部署springcloud项目【AL】 (先手工做,非自动化) 整体逻辑架构图 2.1 dev1分支的文件 (交付代码): 2.2 gateway-service 网关服务 tips: 2.3 product-service 商品服务 2.4 eureka-service 注册中心服务 其他的文件夹要看的关键文件,以此类推。 3 、 dev2 编写Dockerfile构建镜像。

    2024年02月14日
    浏览(38)
  • DevOps搭建(十五)-kubernetes部署项目详细步骤

    k8s官网地址 https://kubernetes.io/zh-cn/docs/home/ 详细步骤可参考官网 https://kuboard.cn/install/install-k8s.html 至少 2 台 2核4G 的服务器。 选择v1.19,因为高版本的已经把docker给舍弃掉了。 https://kuboard.cn/install/history-k8s/install-k8s-1.19.x.html 主机执行 从机执行 主机和从机都要执行 2.4.1、执行初

    2024年01月17日
    浏览(40)
  • Kubernetes(k8s)实战:Kubernetes(k8s)部署Springboot项目

    wordpress是用于快速搭建博客系统。 该yaml文件创建一个mysql,并且生成一个service,service对外暴露的端口是3306 我们发现,搭建成功了,用浏览器访问192.168.56.101:30493,发现访问成功了! 在集群中,pod之间可以通过service 的name进行访问,不仅仅是ip,这就意味着,service中不仅帮

    2024年02月12日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包