istio
文章平均质量分 53
本篇文章涉及关于 istio 的使用以及原理。
SunnyJim
golang 、docker、k8s、istio
展开
-
使用 go-control-plane 自定义服务网格控制面
动态配置的方式是在内存中加载配置,不会更新到静态的文件中。更高级、复杂的用法可以参考istio;具体来说pilotwatch集群中的服务、端点、配置等资源的变化。当检测到这些资源的变化时,pilot会生成新的配置,并通过xDS API将更新推送到相应的Envoy实例,从而实现动态配置和管理服务网格中的流量控制和路由规则。这样可以确保Envoy始终具有最新的服务发现信息和路由配置。源码目录 https://github.com/istio/istio/tree/master/pilot。原创 2024-06-27 16:02:26 · 1171 阅读 · 0 评论 -
使用 tcpdump 在本机获取远程服务器的源 ip
tcpdump 查询源 ip场景程序中需要拦截远程服务器的 ip,在配置了远程服务器的公网 ip 地址发现一直不起作用,意识到可能地址被做了转换,所以在本机拦截报问来确认远程服务器的源 ip方法需要使用到两个命令:ping,tcpdump,ping 命令从远程机器发出请求,tcpdump 在本机用来捕获 ping 命令发来的 icmp 数据包远程服务器ping 47.xxx.xxx.128M1Pro ~ % ping 47.xxx.xx.128PING 47.xxx.xxx.128 (4原创 2024-06-14 15:58:16 · 231 阅读 · 0 评论 -
Istio 错误: 502 UPE upstream_reset_before_response_started{protocol_error}
502 UPE upstream_reset_before_response_started{protocol_error}原创 2022-06-15 09:57:23 · 1616 阅读 · 0 评论 -
Istio 从网关访问服务错误 503 NC cluster_not_found
背景:是这样的,我使用默认的 httpbin gateway 来测试一些服务,但是使用之后从网关访问不符合我的预期,所以简单看了一下原因。这里的 yaml 是官方提供的(我小改了一些修改了 vs 的范围,以及添加了 host)apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata: name: httpbin-gatewayspec: selector: istio: ingressgateway server原创 2022-05-06 15:38:09 · 1983 阅读 · 2 评论 -
Istio 使用 discoverySelectors
背景Istio 控制平面默认会 watch 并且 push(更新策略)集群中所有命名空间中的所有Kubernetes 资源。通俗的话我们在任意一个命名空间删除一个 svc 或者其他资源,Istio 都会帮我们同步到所有的边车。被称之为“全量同步”而大多数用户是不希望这样的。所以我们需要一个能力来限制 istio 只处理我们关注的命名空间,以便 Istio 控制平面只处理这些命名空间的资源。限制命名空间的能力使 Istiod 能够 watch 和 push 更少的资源和相关的变化到 sidecar,从而提原创 2022-04-18 16:58:54 · 421 阅读 · 0 评论 -
Istio Pod 禁用自动注入
当前场景,使用 istio 的自动注入能力,但是又希望过滤指定的 pod 不注入。当前测试 Pod 列表[root@node115-254871 ~]# kubectl get pod -n mesh-skyNAME READY STATUS RESTARTS AGEhttpbin-v1-77d968d988-7qcfb 1/1 Running 0 3m46shttpbin-v2-77原创 2022-04-18 15:34:40 · 1115 阅读 · 0 评论 -
Istio 访问 ServiceEntry host 无法解析
场景:现在有一个 httpbin 服务直接通过 service entry 注册到网格内部,但是使用确无法解析到域名,下面是实际的错。现在就要解决问题/ # curl httpbin.remote:30655/ipcurl: (6) Could not resolve host: httpbin.remote首先检查有没有配置 DNSapiVersion: install.istio.io/v1alpha1kind: IstioOperatorspec: meshConfig: d原创 2022-03-08 15:06:58 · 1283 阅读 · 0 评论 -
Istio 网格内长连接网格外 Redis 错误 [TID: N/A]
先说一下具体场景,服务在注入 sidecar 之前一直使用的长链接连接的 redis,注意:redis 一直在网格外,没有代理。但是服务在注入 sidecar 之后发现每隔一个小时长链接会自动断开一次并且打印错误 ERROR [TID: N/A]既然确定了是由于 sidecar 注入导致的问题,就先看看默认 sidecar 有没有配置长链接。在 envoy 的官方可以看到 envoy 设置了 tcp 连接,并且默认就是一个小时https://www.envoyproxy.io/docs/envoy/l原创 2022-02-15 15:02:26 · 1385 阅读 · 0 评论 -
Istio 1.11.2 底层自动注入流程
自动注入流程简单说下正式开始之前简单说一下 webhook,这样对以下理解更方便一些。准入控制器也就是 webhook 会拦截 API Server 收到的请求,拦截发生在认证和鉴权完成之后,对象进行持久化之前(这个时候可以修改 pod 模版完成自动注入)。可以定义两种类型的 webhook: Mutating 和 ValidatingMutating 修改资源,可以对请求内容进行修改Validating 验证资源,根据请求的内容判断是继续执行该请求还是拒绝该请求实现流程pkg/kub原创 2022-02-08 11:52:47 · 1477 阅读 · 0 评论 -
Istio 限流使用错误记录
原始错误日志:2021-09-26T09:05:45.937681Z warning envoy config gRPC config for type.googleapis.com/envoy.config.listener.v3.Listener rejected: Error adding/updating listener(s) virtualInbound: local rate descriptor limit is not a multiple of token bucket fill ti原创 2021-09-27 10:55:49 · 577 阅读 · 0 评论 -
Istio sidecar 注入错误: rejected: Error adding/updating cluster(s)......
完整日志kubectl logs -f pod_name -c istio-proxy -n default2021-09-15T05:56:17.081393Z warning envoy config gRPC config for type.googleapis.com/envoy.config.cluster.v3.Cluster rejected: Error adding/updating cluster(s) outbound|7001||socket-client.socketdemo.原创 2021-09-15 14:30:37 · 418 阅读 · 0 评论 -
Istio 创建 gateway 之后 istio ingressgateway 配置同步错误: istio ingress STALE (Never Acknowledged)
错误场景: 随意创建一个绑定 80 端口 gateway 的之后,访问之后发现失败,随后查看日志以及 ingressgateway 的状态发现一下错误:ingress 日志gRPC config for type.googleapis.com/envoy.config.listener.v3.Listener rejected: Error adding/updating listener(s) 0.0.0.0_80: cannot bind '0.0.0.0:80': Permission denie原创 2021-09-10 11:05:15 · 1728 阅读 · 0 评论 -
Istio operator 运行错误 415: Unsupported Media Type
错误场景、环境kubernetes version: v1.18.2istio version: v1.10.0运行之后 istio-operator 的日志就抛出下面错误,而且会一直重启# kubectl get iop -ANAMESPACE NAME REVISION STATUS AGEistio-system iop-pro-cluster-8410-1-10-0 iop-1-10-0 ERROR原创 2021-09-02 10:47:58 · 914 阅读 · 0 评论 -
部署 istio-1.11.0 失败 validation istiod 未找到
背景: 版本: istio-1.11.0,使用 istio operator 进行安装,全程根据官方文档进行 link部署 istio operatoristio operator init创建 IstioOperator$: kubectl apply -f - <<EOFapiVersion: install.istio.io/v1alpha1kind: IstioOperatormetadata: namespace: istio-system name: exam原创 2021-08-21 16:01:35 · 1239 阅读 · 0 评论 -
ServiceEntry 跨命名空间
说在前面:本文主要测试 service entry 是否可以跨命名空间可见。istio 版本为 1.8.1 k8s 版本为 1.17 网络插件为 cni。部署示例详情:创建命名空间 entry1、entry2 部署一个 sleep 服务然后注入 sidecar,创建命名空间 entry3 部署一个 httpbin 服务不注入 sidecar 。然后通过 service entry 的方式将 httpbin 注册到 istio 中。部署详情:[root@dev-10 mesh_test]# kubec原创 2021-03-14 02:13:01 · 762 阅读 · 0 评论 -
Prometheus operator 使用 additionalScrapeConfigs 之后创建失败
详情:在使用 additionalScrapeConfigs 字段之后更新 yaml 文件一直没有创建 pod 以及 StatefulSet。yaml 文件如下apiVersion: monitoring.coreos.com/v1kind: Prometheusmetadata: name: inst namespace: monitoringspec: serviceAccountName: prometheus serviceMonitorSelector: match原创 2021-01-06 00:07:42 · 3127 阅读 · 2 评论 -
Istio client-go 使用 patch 更新资源
写在前面两个月没来 csdn 了,中间一直在进行公司的服务网格项目,感觉时间还是进行很快的,今天突然心血来潮想记录一下如何使用 client-go patch 怎么更新配置以及使用的坑,本文使用 json-patch 来介绍。测试配置官方 bookinfo 的配置, 随便使用可以是任何配置, 直接在服务器 kubectl applym bbvg’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’[p;errrrrrrrrrrrrrrrrrrrrrr 即可apiVersion原创 2020-12-06 15:01:19 · 1441 阅读 · 0 评论 -
记一次详细安装 kubernetes、istio 步骤
写在前面先说一下我的机器配置,热乎乎的裸机,一共三台配置如下10.20.1.103 4C 8G 磁盘 50G node4 master centos710.20.1.104 4C 8G 磁盘 50G node5 node centos710.20.1.105 4C 8G 磁盘 50G node6 node centos7我的安装方法是基于 k8s 官方的推荐方法 k...原创 2020-01-30 16:28:39 · 2204 阅读 · 0 评论 -
Istio mtls 使用
Istio 版本: 1.6.01:设置启动参数$ kubectl get iop -A -oyaml > temp.yaml$ vim temp.yaml# 添加enableAutoMtls: truePeerAuthentication CRD 解释PeerAuthentication 定义流量是否通过隧道到达 SideCarapiVersion: security.istio.io/v1beta1kind: PeerAuthenticationmetadata: nam原创 2020-07-24 13:55:26 · 933 阅读 · 0 评论 -
Istio 基于“权重”、“Headers” 的灰度发布
ps:istio 的官方提供的 bookinfo 例子已经很齐全了,但我很讨厌拿 bookinfo 当作示例。因为是别人已经提供好的,包括 yaml 文件你自己根本没有从中学习到什么,所以想自己写一些 demo、yaml 来使用。明天写。...原创 2020-05-10 20:37:54 · 1804 阅读 · 4 评论 -
Istio VirtualService 结合 DestinationRule 基础使用
ps:istio 的官方提供的 bookinfo 例子已经很齐全了,但我很讨厌拿 bookinfo 当作示例。因为是别人已经提供好的,包括 yaml 文件你自己根本没有从中学习到什么,所以想自己写一些 demo、yaml 来使用。step1: 前提在这里默认你已经自己提供了 demo,才可以往下进行。demo 可以如下图所示:中间三个 pod 是我自己提供的 demo 其他的请无视。java-demo-client 是客户端,会调用 java-demo-service 服务端,服务端我提供了两个版本原创 2020-05-10 20:31:35 · 2838 阅读 · 0 评论