安装istio

Istio / 入门

[root@master ~]# curl -L https://istio.io/downloadIstio | sh -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- -- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --100 102 100 102 0 0 86 0 0:00:01 0:00:01 --:--:-- 86
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --100 4899 100 4899 0 0 2222 0 0:00:02 0:00:02 --:--:-- 9313 ******省略******
Need more information? Visit https://istio.io/latest/docs/setup/install/ [root@master ~]# ls
anaconda-ks.cfg istio-1.22.0 kube-flannel.yml
[root@master ~]# cd istio-1.22.0/
[root@master istio-1.22.0]# ls
bin LICENSE manifests manifest.yaml README.md samples tools
[root@master istio-1.22.0]# cd bin/
[root@master bin]# ls
istioctl
[root@master bin]# cp istioctl /usr/local/bin/
[root@master bin]# is #tab 补全看能不能补
isosize istioctl
[root@master istio-1.22.0]# istioctl install --set profile=demo -y Istio core installed
Istiod installed
Egress gateways installed
Ingress gateways installed
Installation complete Made this installation the default for injection and validation.
# 这会使用演示配置文件将Istio组件安装在默认的Kubernetes集群 [root@master istio-1.22.0]# kubectl label namespace default istio-injection=enabled namespace/default labeled
#当我们在此Kubernetes集群上部署任何应用程序时,我们需要指示Istio自动注入Envoy sidecar代理 #yaml创建 # 由于我们已经为默认命名空间启用了自动注入Envoy sidecar代理,因此一切都会由istiod来处理
# 注意此时注入的命名空间内原有的资源不会被修改 # 举例实例 # 部署bookinfo [root@master istio-1.22.0]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created # 等待拉取镜像
[root@master istiod]# kubectl get po
NAME READY STATUS RESTARTS AGE
details-v1-cf74bb974-xsppk 2/2 Running 0 10m
productpage-v1-87d54dd59-6hdmb 2/2 Running 0 10m
ratings-v1-7c4bbf97db-qhzcp 2/2 Running 0 10m
reviews-v1-5fd6d4f8f8-tk58c 2/2 Running 0 10m
reviews-v2-6f9b55c5db-zhjh5 2/2 Running 0 10m
reviews-v3-7d99fd7978-8nprb 2/2 Running 0 10m
two-deployment-d9554f944-84l94 1/1 Running 0 5h40m
two-deployment-d9554f944-8jldq 1/1 Running 0 5h40m
two-deployment-d9554f944-w4mgw 1/1 Running 0 5h40m
[root@master istiod]# # 内部访问
[root@master istio-1.22.0]# kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage |grep title
<title>Simple Bookstore App</title>
<h4 class="modal-title">Please sign in</h4>
[root@master istio-1.22.0]# # 外部访问
# 将应用程序与istio网关关联
[root@master istio-1.22.0]# kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
gateway.networking.istio.io/bookinfo-gateway created
virtualservice.networking.istio.io/bookinfo created
# 确保配置没有问题
[root@master istio-1.22.0]# istioctl analyze No validation issues found when analyzing namespace: default # 如果因为原有的资源没有被注入而报错
# 我们可以使用istioctl kube-inject命令来手动注入,或者直接删除资源
# 在 Istio 自动注入(通过 MutatingAdmissionWebhook)未启用或不起作用的情况下
# 手动为 Pod 注入 sidecar
istioctl kube-inject -f my-deployment.yaml -o my-deployment-injected.yaml
# 这里,-f my-deployment.yaml 指定了要注入的原始资源文件
# -o my-deployment-injected.yaml 指定了输出文件的名称
# 该文件将包含注入后的资源定义 # 当使用 istioctl kube-inject 命令时
# 它会读取原始的资源文件(比如 my-deployment.yaml)
# 然后在该文件中的 Pod 模板部分添加 Istio sidecar 容器的配置
# 生成一个新的、已经注入 Istio sidecar 的资源文件(比如 my-deployment-injected.yaml)。 # 这个新的文件包含了原始文件的所有内容
# 但额外添加了 Istio 所需的配置
# 使得使用 kubectl apply 命令将这个新文件应用到 Kubernetes 集群时,Pod 启动时会包含 Istio 的 sidecar 容器。 # 确定入口和端口
# 确定 Kubernetes 集群是否在支持外部负载均衡器的环境中运行
# 修改svc配置文件`edit`修改
# type: LoadBalancer 修改为 type: NodePort
[root@master istio-1.22.0]# kubectl get svc istio-ingressgateway -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingressgateway NodePort 10.101.221.20 <none> 15021:32616/TCP,80:31642/TCP,443:31040/TCP,31400:32024/TCP,15443:30184/TCP 6h12m # 设置入口端口
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}') # 设置gateway_url
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT # 测试gateway——url
[root@master istio-1.22.0]# echo "$GATEWAY_URL"
10.104.43.196:31642 # 测试外部访问
[root@master istio-1.22.0]# echo "http://$GATEWAY_URL/productpage"
http://10.104.43.196:31642/productpage

安装kiali仪表盘

# 安装kiali仪表盘和其他插件
[root@master istio-1.22.0]# kubectl apply -f samples/addons
[root@master istio-1.22.0]# kubectl rollout status deployment/kiali -n istio-system
Waiting for deployment "kiali" rollout to finish: 0 of 1 updated replicas are available...
deployment "kiali" successfully rolled out
# 记得修改kiali svc 的type 将clusterIP 修改为 NodePort
[root@master istio-1.22.0]# istioctl dashboard kiali
http://localhost:20001/kiali
Failed to open browser; open http://localhost:20001/kiali in your browser.
# 此时显示的是localhost:20001/kiali
# 也就是说 如果你要在windows上访问的话
# 要使用 http://10.104.43.196:30140/kiali
[root@master istio-1.22.0]# kubectl get svc -n istio-system |grep kial
kiali NodePort 10.97.183.177 <none> 20001:30140/TCP,9090:31574/TCP 91m # Kiali 仪表板显示网格与关系的概述 在示例应用程序中的服务之间。它还提供 用于可视化交通流的过滤器。

k8s——istio的更多相关文章

  1. k8s+istio:流量控制之灰度发布

    通过Kubernetes+Istio的流量控制实现灰度发布,主要演示通过流量权重实现蓝绿,通过http自定义头实现金丝雀 准备环境 k8s和istio不想自己装的话可以在云上买个按量付费集群,用完即删 ...

  2. springboot2 + grpc + k8s + istio

    项目情况说明: ubuntu - 16.04 springboot - 2.2.2.RELEASE mysql - 5.7 mongodb - 4.0.14 redis - 3.0.6 grpc -  ...

  3. ubuntu16.04 docker kubernetes(k8s) istio 安装

    版本: docker: 19.03.5 kubernetes: 1.17.0 istio: 1.4.3 步骤一:给ubuntu换源 https://www.cnblogs.com/lfri/p/106 ...

  4. k8s istio 配置请求的路由规则

    使用istio我们可以根据权重和HTTP headers来动态配置请求路由. 基于内容的路由 因为BookInfo示例部署了3个版本的评论微服务,我们需要设置一个默认路由. 否则,当你多次访问应用程序 ...

  5. helm istio k8s docker

    helm https://hub.helm.sh/ k8s https://www.kubernetes.org.cn/k8s istio 微服务 https://istio.io/

  6. 朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)

    十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器 ...

  7. 古典、SOA、传统、K8S、ServiceMesh

    古典.SOA.传统.K8S.ServiceMesh 十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud ...

  8. Service Mesh服务网格新生代--Istio(转)

    万字解读:Service Mesh服务网格新生代--Istio  官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...

  9. 云原生生态周报 Vol. 15 | K8s 安全审计报告发布

    业界要闻 CNCF 公布 Kubernetes 的安全审计报告 报告收集了社区对 Kubernetes.CoreDNS.Envoy.Prometheus 等项目的安全问题反馈,包含从一般弱点到关键漏洞 ...

  10. Kubernetes+Istio

    Kubernetes+Istio   微服务.SpringCloud.k8s.Istio杂谈   一.微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产 ...

随机推荐

  1. js es6 模板字符

    前言 es的模板字符,也就是定义了块的概念. 模板字符的二个条件: 1.必须在``中,这个`不是单引号而是反单引号,是tab的上面一个. 2.在#{}中,这个就有点意思了,里面不像后台的块级,在这里不 ...

  2. tomcat 服务版本内存设置

    1. 安装服务,如需指定java路径,需要在service.bat 中修改, 如下图 其中 pa代表当前目录 2. 安装服务, service.bat install 服务名,如下图示例 3. 内存设 ...

  3. FasterViT:英伟达提出分层注意力,构造高吞吐CNN-ViT混合网络 | ICLR 2024

    论文设计了新的CNN-ViT混合神经网络FasterViT,重点关注计算机视觉应用的图像吞吐能力.FasterViT结合CNN的局部特征学习的特性和ViT的全局建模特性,引入分层注意力(HAT)方法在 ...

  4. 应用容灾中,MySQL数据表是否需要跨云同步?

    简介: 容灾系统的重要目标在于保证系统数据和服务的"连续性".当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性.为了防止天灾人祸.不可抗力,在同城或异地建立对应的IT系 ...

  5. ICBU可控文本生成技术详解

    ​简介: 文本生成(Text Generation)是自然语言处理(Natural Language Processing,NLP)领域的一项重要且具有挑战的任务.顾名思义,文本生成任务的目的是生成近 ...

  6. [FAQ] 阿里云一口价域名购买之后在哪里看

    进入控制台,产品和服务中找到"域名",进去后在左侧菜单有 "已买到的域名". 如图: Link:https://www.cnblogs.com/farwish/ ...

  7. [Go] 注意 go build -o <output> 选项的准确含义

    -o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...

  8. 记录几十页html生成pdf的历程和坑(已用bookjs-easy解决)(生成、转换、拼接pdf)

    懒得看的朋友,先说最终解决办法,主力为 前端依靠插件 bookjs-easy(点击直接跳转官网)并跳转到下面的第三点查看 接下来详细记录下整个试探的方向和历程 项目需求:是生成一个页数达到大几十页的p ...

  9. linux打包压缩工具详解

    linux打包压缩工具详解 目录 linux打包压缩工具详解 1.linux文件压缩工具 1.1 compress命令详解 1.2 gzip命令详解 1.3 bzip2命令详解 1.4 xz命令详解 ...

  10. make编译报错:fatal error: filesystem: 没有那个文件或目录 #include <filesystem>

    报错: fatal error: filesystem: 没有那个文件或目录 #include(filesystem) 解决方法一: 修改头文件 #include <experimental/f ...