 Taming Istio
Configuration with Helmapplications ● Install ● Upgrade ● Roll back https://helm.sh #IstioCon What is Helm? values .yaml Helm Chart > helm install my-application #IstioCon Helm has a polarizing reputation ● Broken install built on Helm ● Istio runs on YAML ● Our services are installed with YAML ● Helm emits YAML ● We can manage Istio and our services with Helm! values .yaml go- template > helm template my-service my-service | kubectl apply -f - k8s yaml Istio yaml k8s yaml Istio yaml k8s yaml Istio yaml Sprig functions Native functions Values Chart Files #IstioCon Istio day two operations with Helm ● Istio0 码力 | 19 页 | 867.72 KB | 1 年前3 Taming Istio
Configuration with Helmapplications ● Install ● Upgrade ● Roll back https://helm.sh #IstioCon What is Helm? values .yaml Helm Chart > helm install my-application #IstioCon Helm has a polarizing reputation ● Broken install built on Helm ● Istio runs on YAML ● Our services are installed with YAML ● Helm emits YAML ● We can manage Istio and our services with Helm! values .yaml go- template > helm template my-service my-service | kubectl apply -f - k8s yaml Istio yaml k8s yaml Istio yaml k8s yaml Istio yaml Sprig functions Native functions Values Chart Files #IstioCon Istio day two operations with Helm ● Istio0 码力 | 19 页 | 867.72 KB | 1 年前3
 (四)基于Istio on Kubernetes 云原生应用的最佳实践 - Alibaba Cloud K8S Playground部署应⽤用 使⽤用 kubectl 部署简单的服务 1 kubectl apply -f app.yaml 上⾯面的命令会启动全部的3个服务,其中也包括了了 addedvalues 服务的版本v1. 定义 Ingress gateway 1 kubectl apply -f gateway.yaml 确认所有的服务和 Pod 都已经正确的定义和启动 确认所有的服务已经正确的定义和启动 1 kubectl get pods 确认⽹网关创建完成 1 kubectl get gateway 应⽤用缺省⽬目标规则 1 kubectl apply -f destination-v1.yaml 等待⼏几秒钟,等待⽬目标规则⽣生效。这意味着上述3个微服务已经都部署在istio的环境中了了。你可以使⽤用以下命令来查看⽬目标规则: 1 kubectl get destinationrules 1 kubectl apply -f addedvalues-v2.yaml 部署DestionationRule: 1 kubectl apply -f destination-v2.yaml 部署VirtualService: 1 kubectl apply -f virtualservice-v1-v2.yaml 当前v1和v2的流量量分别为50%. 然后,通过以下命令v2接管所有流量量:0 码力 | 6 页 | 1.33 MB | 1 年前3 (四)基于Istio on Kubernetes 云原生应用的最佳实践 - Alibaba Cloud K8S Playground部署应⽤用 使⽤用 kubectl 部署简单的服务 1 kubectl apply -f app.yaml 上⾯面的命令会启动全部的3个服务,其中也包括了了 addedvalues 服务的版本v1. 定义 Ingress gateway 1 kubectl apply -f gateway.yaml 确认所有的服务和 Pod 都已经正确的定义和启动 确认所有的服务已经正确的定义和启动 1 kubectl get pods 确认⽹网关创建完成 1 kubectl get gateway 应⽤用缺省⽬目标规则 1 kubectl apply -f destination-v1.yaml 等待⼏几秒钟,等待⽬目标规则⽣生效。这意味着上述3个微服务已经都部署在istio的环境中了了。你可以使⽤用以下命令来查看⽬目标规则: 1 kubectl get destinationrules 1 kubectl apply -f addedvalues-v2.yaml 部署DestionationRule: 1 kubectl apply -f destination-v2.yaml 部署VirtualService: 1 kubectl apply -f virtualservice-v1-v2.yaml 当前v1和v2的流量量分别为50%. 然后,通过以下命令v2接管所有流量量:0 码力 | 6 页 | 1.33 MB | 1 年前3
 36-云原生监控体系建设-秦晓辉underlay、overlay两层网络,容器内容器外两个namespace,搞懂需要花些时间 •Kubernetes的监控,缺少体系化的文档指导,关键指标是哪些?最佳实践是什么?不是随便搜索几个yaml文件能搞定的 平台侧自身复杂度变高, 监控难度加大 从 Kubernetes 架构来 看要监控的组件 Kubernetes架构 l 服务端组件,控制面:API Server、Scheduler、 中的 hostname=“$ip” 即可 完整配置可以参考: https://github.com/flashcatcloud/categraf/blo b/main/k8s/daemonset.yaml Kubernetes Node - 容器负载监控 关键指标 CPU使用率,分子是每秒内容器用了多少CPU 时间,分母是每秒内被限制使用多少CPU时间 sum( irate(container 黄金指 标 • apiserver 也会缓存很多数据到内存里,所以进程占用的 内存,所在机器的内存使用率都应该要关注 • 采集方式可以参考 categraf 仓库的 k8s/deployment.yaml,大盘可以参考 k8s/apiserver- dash.json • apiserver_request_total 请求量的指标,可以统计每秒请求数、成功率 • apiserver_request_duration_seconds0 码力 | 32 页 | 3.27 MB | 6 月前3 36-云原生监控体系建设-秦晓辉underlay、overlay两层网络,容器内容器外两个namespace,搞懂需要花些时间 •Kubernetes的监控,缺少体系化的文档指导,关键指标是哪些?最佳实践是什么?不是随便搜索几个yaml文件能搞定的 平台侧自身复杂度变高, 监控难度加大 从 Kubernetes 架构来 看要监控的组件 Kubernetes架构 l 服务端组件,控制面:API Server、Scheduler、 中的 hostname=“$ip” 即可 完整配置可以参考: https://github.com/flashcatcloud/categraf/blo b/main/k8s/daemonset.yaml Kubernetes Node - 容器负载监控 关键指标 CPU使用率,分子是每秒内容器用了多少CPU 时间,分母是每秒内被限制使用多少CPU时间 sum( irate(container 黄金指 标 • apiserver 也会缓存很多数据到内存里,所以进程占用的 内存,所在机器的内存使用率都应该要关注 • 采集方式可以参考 categraf 仓库的 k8s/deployment.yaml,大盘可以参考 k8s/apiserver- dash.json • apiserver_request_total 请求量的指标,可以统计每秒请求数、成功率 • apiserver_request_duration_seconds0 码力 | 32 页 | 3.27 MB | 6 月前3
 Helm 及Helm 应用仓库简介李辉— KubeSphere - 云原生实战Kuberetes 的包管理器 类似于 Ubuntu 的 apt-get, Centos 的 yum, 用于管理 Charts Helm Chart 是用来封装 Kubernetes 应用程序的一系列 YAML 文件 • 安装 Helm 在 https://github.com/helm/helm 上下载二进制文件 _ by QingCloud Helm 及其应用仓库简介 • 应用仓库: 管理和分发 Harbor 1. helm repo add harbor https://helm.goharbor.io 2. helm fetch harbor/harbor 3. 修改 values.yaml 4. helm install my-harbor harbor -n harbor 5. helm list -n harbor 6. 登录 harbor, 默认账户密码 admin: Harbor12345 如何开发一个 Helm 应用 • helm create hello-chart: 创建 Chart 目录 chart.yaml: 声明了当前 Chart 的名称、版本等基本信息 values.yaml: 提供应用安装时的默认参数 templates/: 包含应用部署所需要使用的YAML 文件,比如 Deployment 和 Service等 charts/: 当前 Chart 依赖的其它 Chart0 码力 | 9 页 | 2.48 MB | 1 年前3 Helm 及Helm 应用仓库简介李辉— KubeSphere - 云原生实战Kuberetes 的包管理器 类似于 Ubuntu 的 apt-get, Centos 的 yum, 用于管理 Charts Helm Chart 是用来封装 Kubernetes 应用程序的一系列 YAML 文件 • 安装 Helm 在 https://github.com/helm/helm 上下载二进制文件 _ by QingCloud Helm 及其应用仓库简介 • 应用仓库: 管理和分发 Harbor 1. helm repo add harbor https://helm.goharbor.io 2. helm fetch harbor/harbor 3. 修改 values.yaml 4. helm install my-harbor harbor -n harbor 5. helm list -n harbor 6. 登录 harbor, 默认账户密码 admin: Harbor12345 如何开发一个 Helm 应用 • helm create hello-chart: 创建 Chart 目录 chart.yaml: 声明了当前 Chart 的名称、版本等基本信息 values.yaml: 提供应用安装时的默认参数 templates/: 包含应用部署所需要使用的YAML 文件,比如 Deployment 和 Service等 charts/: 当前 Chart 依赖的其它 Chart0 码力 | 9 页 | 2.48 MB | 1 年前3
 云原生图数据库解谜、容器化实践与 Serverless 应用实操��all kubectl apply �f https:��raw.githubusercontent.com/OpenFunction/OpenFunction/main/config/bundle.yaml kubectl create secret docker�registry push�secret \ ��docker�server=$REGISTRY_SERVER \ � service kourier # externalIP vim config/samples/function�sample.yaml # container image registery kubectl apply �f config/samples/function�sample.yaml $ kubectl get function NAMESPACE NAME BUILDSTATE0 码力 | 47 页 | 29.72 MB | 1 年前3 云原生图数据库解谜、容器化实践与 Serverless 应用实操��all kubectl apply �f https:��raw.githubusercontent.com/OpenFunction/OpenFunction/main/config/bundle.yaml kubectl create secret docker�registry push�secret \ ��docker�server=$REGISTRY_SERVER \ � service kourier # externalIP vim config/samples/function�sample.yaml # container image registery kubectl apply �f config/samples/function�sample.yaml $ kubectl get function NAMESPACE NAME BUILDSTATE0 码力 | 47 页 | 29.72 MB | 1 年前3
 22-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊Custom Controller Custom Resource(CR) Operator机制 Pod,Deployment, etc Spec (K8s Yaml) Custom Resource Spec (K8S yaml) 通过拓展实现自定义控制器来实现对非标准资源的纳 管,比如数据库的自动拓展能力或者自动化数据同步 能力等等。 标准化能力-分布式操作系统核心-容器服务-新发展 只能绑定在一种语 言进行研发、升级 怎么办? 1 2 • 第二个困难已经被Mesh技术架构解决了 • 第一个困难就需要为研发用户提供高级抽象-IaC 抽象成虚拟服务和目标规则这两种声明性API(Yaml),使得配置非 常形象易懂,并且彻底将左侧需要了解的细节进行了屏蔽和简化, 只需要学习规则,而不需要了解下面很多种实现,大大降低了使 用者的难度,并实现了版本化能力 ServiceMesh-3-新发展-多运行时Mesh架构(机甲)0 码力 | 42 页 | 11.17 MB | 6 月前3 22-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊Custom Controller Custom Resource(CR) Operator机制 Pod,Deployment, etc Spec (K8s Yaml) Custom Resource Spec (K8S yaml) 通过拓展实现自定义控制器来实现对非标准资源的纳 管,比如数据库的自动拓展能力或者自动化数据同步 能力等等。 标准化能力-分布式操作系统核心-容器服务-新发展 只能绑定在一种语 言进行研发、升级 怎么办? 1 2 • 第二个困难已经被Mesh技术架构解决了 • 第一个困难就需要为研发用户提供高级抽象-IaC 抽象成虚拟服务和目标规则这两种声明性API(Yaml),使得配置非 常形象易懂,并且彻底将左侧需要了解的细节进行了屏蔽和简化, 只需要学习规则,而不需要了解下面很多种实现,大大降低了使 用者的难度,并实现了版本化能力 ServiceMesh-3-新发展-多运行时Mesh架构(机甲)0 码力 | 42 页 | 11.17 MB | 6 月前3
 02. Kubevela 以应用为中心的渐进式发布 - 孙健波metrics 平台研发团队: ● 开发了一个新 Operator 叫做 metrics(监控) ● 编写一个 K8s 能力描述文件 metrics.yaml 平台管理员: ● 执行 $ kubectl apply -f metrics.yaml 用户: ● 立刻就可以在 Application 中定义一个新的字段 metrics ● 无需系统更新或重启 Platform Builder0 码力 | 26 页 | 9.20 MB | 1 年前3 02. Kubevela 以应用为中心的渐进式发布 - 孙健波metrics 平台研发团队: ● 开发了一个新 Operator 叫做 metrics(监控) ● 编写一个 K8s 能力描述文件 metrics.yaml 平台管理员: ● 执行 $ kubectl apply -f metrics.yaml 用户: ● 立刻就可以在 Application 中定义一个新的字段 metrics ● 无需系统更新或重启 Platform Builder0 码力 | 26 页 | 9.20 MB | 1 年前3
 23-云原生观察性、自动化交付和 IaC 等之道-高磊置及变更,再执行代码完成配置和变更。 K8S OS DB F5 路由器 防火墙 .... Ansible Salt Chef Pupet 实际上云原生平台自己也采用了IaC来管理应用, 比如K8S的Yaml,这种方式有利于隔离实现细节。 ITIL 需要具体学习不同软 硬件的知识才能管理 只需要写IaC声明性代码来管 理基础设施 实施 标准化能力-让管理和运维更轻松-基础设施即代码-3-实例 Ansible 负责解析剧本并通过连 接器执行 Connector 连接受控端 主机 主机 主机 DevOps-CICD 软件制品库 Docker引擎安装包、K8S安 装包、数据库等等 投放剧本(Yaml) 根据剧本拉取软件安装 包通过SSH向主机安装 Ansible有个缺陷,无法安装OS,Salt具备 此能力,但是对主机有侵入性0 码力 | 24 页 | 5.96 MB | 6 月前3 23-云原生观察性、自动化交付和 IaC 等之道-高磊置及变更,再执行代码完成配置和变更。 K8S OS DB F5 路由器 防火墙 .... Ansible Salt Chef Pupet 实际上云原生平台自己也采用了IaC来管理应用, 比如K8S的Yaml,这种方式有利于隔离实现细节。 ITIL 需要具体学习不同软 硬件的知识才能管理 只需要写IaC声明性代码来管 理基础设施 实施 标准化能力-让管理和运维更轻松-基础设施即代码-3-实例 Ansible 负责解析剧本并通过连 接器执行 Connector 连接受控端 主机 主机 主机 DevOps-CICD 软件制品库 Docker引擎安装包、K8S安 装包、数据库等等 投放剧本(Yaml) 根据剧本拉取软件安装 包通过SSH向主机安装 Ansible有个缺陷,无法安装OS,Salt具备 此能力,但是对主机有侵入性0 码力 | 24 页 | 5.96 MB | 6 月前3
 云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)websocket 连接[28]。 3.4Istio 认证策略绕过攻击 3.4.1 攻击场景介绍 Istio 目前已作为微服务治理框架的代表,在 Istio 中 JWT 认证策略通常通 过配置一个 YAML 文件实现,以下是一个简单的 JWT 认证策略配置。 云原生安全威胁分析与能力建设白皮书 44 apiVersion: "authentication.istio.io/v1alpha1" CVE-2020-8595 漏洞[29]主要由于 Istio JWT 策略配置中的 triggerRules 机制,简单来讲,triggerules 指定请求 url 的字符串匹配机制,如上 YAML 文 件中参数 exact,表示需要完全匹配的字符串才可以满足要求,包括 url 后面所 附带的参数(“?”)以及 fragments 定位符("#"),而不是在匹配之前将“?” 和“#”隔0 码力 | 72 页 | 2.44 MB | 1 年前3 云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)websocket 连接[28]。 3.4Istio 认证策略绕过攻击 3.4.1 攻击场景介绍 Istio 目前已作为微服务治理框架的代表,在 Istio 中 JWT 认证策略通常通 过配置一个 YAML 文件实现,以下是一个简单的 JWT 认证策略配置。 云原生安全威胁分析与能力建设白皮书 44 apiVersion: "authentication.istio.io/v1alpha1" CVE-2020-8595 漏洞[29]主要由于 Istio JWT 策略配置中的 triggerRules 机制,简单来讲,triggerules 指定请求 url 的字符串匹配机制,如上 YAML 文 件中参数 exact,表示需要完全匹配的字符串才可以满足要求,包括 url 后面所 附带的参数(“?”)以及 fragments 定位符("#"),而不是在匹配之前将“?” 和“#”隔0 码力 | 72 页 | 2.44 MB | 1 年前3
 使用Chaos Mesh来保障云原生系统的健壮性-周强 io/component": "tikv" mode: one duration: "10s" scheduler: cron: "@every 15s" ● kubectl apply -f ./network.yaml ● kubectl describe NetworkChaos network Apply using Dashboard architecture Chaos0 码力 | 28 页 | 986.42 KB | 6 月前3 使用Chaos Mesh来保障云原生系统的健壮性-周强 io/component": "tikv" mode: one duration: "10s" scheduler: cron: "@every 15s" ● kubectl apply -f ./network.yaml ● kubectl describe NetworkChaos network Apply using Dashboard architecture Chaos0 码力 | 28 页 | 986.42 KB | 6 月前3
共 12 条
- 1
- 2













