<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tech on Huabing Blog</title>
    <link>https://zhaohuabing.com/categories/tech/</link>
    <description>Recent content in Tech on Huabing Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://zhaohuabing.com/categories/tech/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>OpenClaw 不是玩具，我的个人助理 Jeff 已经开始“上班”了</title>
      <link>https://zhaohuabing.com/2026/03/04/openclaw-productivity/</link>
      <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2026/03/04/openclaw-productivity/</guid>
      <description>&lt;p&gt;先简单介绍一下 OpenClaw：它是一个开源、自托管的 AI Agent。你可以把它理解为“消息渠道”和“AI 执行能力”之间的统一中枢：一边连 Telegram、WhatsApp 等聊天软件，另一边连模型、工具、会话和记忆系统。&lt;/p&gt;&#xA;&lt;p&gt;我给这个助手起名叫 &lt;strong&gt;Jeff&lt;/strong&gt;，灵感来自电影《Finch》（2021，Tom Hanks 主演）里那个被训练来陪伴和协助人类的机器人。这个名字对我来说挺有象征意义：我希望它不是“回答机器”，而是一个能长期协作、持续进化的工作搭子。&lt;/p&gt;&#xA;&lt;p&gt;对我来说，OpenClaw 最关键的不是“会聊天”，而是它能持续执行真实任务。&lt;/p&gt;&#xA;&lt;p&gt;这段时间我做了一些配置，把它接进了我每天的工作流。在这篇文章里面简单和大家分享一下我使用 OpenClaw 的一些体会：&lt;/p&gt;</description>
    </item>
    <item>
      <title>AI 帮助我成为 10X 工程师！</title>
      <link>https://zhaohuabing.com/post/2026-02-02-ai-coding/</link>
      <pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2026-02-02-ai-coding/</guid>
      <description>&lt;center&gt;马来西亚 滨城 Batu Ferringhi 海滩 Fire Show&lt;/center&gt;&#xA;&lt;p&gt;最近关于 AI 编码的讨论实在是太火了，无论是在国外的 YouTube、X、Reddit，还是国内的微信视频号上，每天都能看到大量关于 AI 编程工具的体验分享。可说实话，作为一名还在一线写“工程化”代码的工程师，我认为很多分享内容都不是 “真正写代码的人” 写的，而是产品经理、AI 博主或者 AI 爱好者写的。虽然他们的内容非常有参考价值，但其实距离我自己每天真实面对的代码环境还是有点远。我想在这里聊聊作为一个在一线写“工程化”代码的工程师，我是如何在日常工作中使用 AI Coding Agent。&lt;/p&gt;</description>
    </item>
    <item>
      <title>在 Ambient Mesh 中使用 Envoy Gateway 扩展 Redis 集群</title>
      <link>https://zhaohuabing.com/post/2025-10-30-scaling-redis-in-ambient-mesh-with-envoy-gateway/</link>
      <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-10-30-scaling-redis-in-ambient-mesh-with-envoy-gateway/</guid>
      <description>&lt;center&gt;爱心树，福州三坊七巷，摄于 2025 年夏&lt;/center&gt;&#xA;&lt;p&gt;在我们此前的博文——&lt;a href=&#34;https://www.cncf.io/blog/2025/08/26/use-envoy-gateway-as-the-unified-ingress-gateway-and-waypoint-proxy-for-ambient-mesh/&#34;&gt;《使用 Envoy Gateway 作为 Ambient Mesh 的统一入口网关和 Waypoint 代理》&lt;/a&gt;中，我们介绍了 Envoy Gateway 如何补足 Istio Ambient Mesh 在第七层（L7）能力上的空白，例如全局限流、熔断、OIDC 认证以及 xDS 动态配置。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy AI Gateway 现已支持 Model Context Protocol</title>
      <link>https://zhaohuabing.com/post/2025-10-06-envoy-ai-gateway-mcp/</link>
      <pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-10-06-envoy-ai-gateway-mcp/</guid>
      <description>&lt;h1 id=&#34;envoy-ai-gateway-现已支持-model-context-protocol&#34;&gt;Envoy AI Gateway 现已支持 Model Context Protocol&lt;/h1&gt;&#xA;&lt;p&gt;我们很高兴地宣布，Envoy AI Gateway 的下一个版本将正式支持 &lt;a href=&#34;https://modelcontextprotocol.io/&#34;&gt;Model Context Protocol&lt;/a&gt;（简称 MCP），让 Envoy AI Gateway（EAIGW）成为 AI 流量的通用入口。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bringing Full L7 Power to Istio Ambient Mesh with Envoy Gateway</title>
      <link>https://zhaohuabing.com/post/2025-07-23-use-envoy-gateway-as-the-ingress-gateway-and-waypoint-proxy-for-ambient-mesh/</link>
      <pubDate>Thu, 24 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-07-23-use-envoy-gateway-as-the-ingress-gateway-and-waypoint-proxy-for-ambient-mesh/</guid>
      <description>&lt;center&gt;Surf Love, Taken in Pingtan County, Fuzhou, Fujian, China, Summer 2025&lt;/center&gt;&#xA;&lt;p&gt;In this article, we’ll look at how you can use &lt;a href=&#34;https://gateway.envoyproxy.io/&#34;&gt;Envoy Gateway&lt;/a&gt;, an Envoy project open source solution, together with Istio when running in Ambient mode. This will allow you to easily leverage the power of Envoy’s L7 capabilities for Ingress traffic and east-west traffic in your mesh with easy-to-use CRDs.&lt;/p&gt;&#xA;&lt;p&gt;To understand how this integration works, let’s first take a quick look at &lt;strong&gt;Ambient Mesh&lt;/strong&gt; itself. Also known as &lt;a href=&#34;https://istio.io/latest/docs/ambient/overview/&#34;&gt;&lt;strong&gt;Istio Ambient mode&lt;/strong&gt;&lt;/a&gt;, it’s a sidecar-less service mesh architecture that aims to simplify deployments and can boost efficiency for specific use cases. Unlike sidecar-based meshes, Ambient splits the data plane into two key components: the &lt;strong&gt;ztunnel&lt;/strong&gt;, which secures service-to-service communication, and the &lt;strong&gt;Waypoint Proxy&lt;/strong&gt;, which handles Layer 7 traffic routing and policy enforcement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway Policies: Unlocking the Full Power of Envoy Proxy for API Gateways</title>
      <link>https://zhaohuabing.com/post/2025-06-16-kubecon-japan-envoy-gateway-policies-unlocking-the-full-power-of-envoy-proxy-for-api-gateways/</link>
      <pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-06-16-kubecon-japan-envoy-gateway-policies-unlocking-the-full-power-of-envoy-proxy-for-api-gateways/</guid>
      <description>&lt;p&gt;This presentation will delve into Envoy Gateway&amp;rsquo;s API extensions: ClientTrafficPolicy, BackendTrafficPolicy, SecurityPolicy, and EnvoyExtensionPolicy. We&amp;rsquo;ll explore their practical applications in managing and securing edge traffic, showcasing advanced features like JWT authorization, rate limiting, OIDC integration, external processing, and WASM plugins.&lt;/p&gt;&#xA;&lt;h2 id=&#34;videos&#34;&gt;Videos&lt;/h2&gt;&#xA;&lt;p&gt;YouTube&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/_454exrrbMM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://localhost:57825/slides/KubeCon%20Japan%202025-Envoy%20Gateway%20Policies_%20Unlocking%20the%20Full%20Power%20of%20Envoy%20Proxy%20for%20API%20Gateways.pdf&#34;&gt;Slides&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio Ambient 模式流量管理实现机制详解（一）</title>
      <link>https://zhaohuabing.com/post/2022-09-11-ambient-deep-dive-1/</link>
      <pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-11-ambient-deep-dive-1/</guid>
      <description>&lt;p&gt;Istio ambient 模式采用了被称为 &lt;a href=&#34;https://www.zhaohuabing.com/post/2022-09-08-introducing-ambient-mesh/#%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA-ambient-mesh&#34;&gt;HBONE&lt;/a&gt; 的&#xA;方式来连接 ztunnel 和 waypoint proxy。HBONE 是 HTTP-Based Overlay Network Environment 的缩写。虽然是一个新的名词，但其实 HBONE 并不是 Istio 创建出来的一个新协议，而只是利用了 HTTP 协议标准提供的隧道能力。简单地说，ambient 模式采用了 &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT&#34;&gt;HTTP 的 CONNECT 方法&lt;/a&gt; 在 ztunnel 和 waypoint proxy 创建了一个隧道，通过该隧道来传输数据。本文将分析 HBONE 的实现机制和原理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing High CPU Usage in VS Code</title>
      <link>https://zhaohuabing.com/post/2025-05-16-vs-code-high-cpu-usage/</link>
      <pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-05-16-vs-code-high-cpu-usage/</guid>
      <description>&lt;h2 id=&#34;vs-code-constantly-freezing&#34;&gt;VS Code Constantly Freezing&lt;/h2&gt;&#xA;&lt;p&gt;I’ve been using VS Code for a long time, and it’s usually rock solid. Recently, though, I started working with the &lt;a href=&#34;https://code.visualstudio.com/docs/remote/ssh&#34;&gt;Remote-SSH&lt;/a&gt; extension to connect to a remote Ubuntu server — a more powerful machine I spun up in the cloud to offload dev workloads from my laptop.&lt;/p&gt;&#xA;&lt;p&gt;But not long after, I noticed VS Code was frequently freezing, lagging, and even dropping SSH connections. The same thing was happening in Cursor and Windsurf, which makes sense since they’re both VS Code forks under the hood.&lt;/p&gt;</description>
    </item>
    <item>
      <title> Envoy Gateway OIDC Authentication &amp; Authorization Demo</title>
      <link>https://zhaohuabing.com/post/2025-04-20-envoy-gateway-oidc-demo/</link>
      <pubDate>Sun, 20 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-04-20-envoy-gateway-oidc-demo/</guid>
      <description>&lt;p&gt;In this demo, I’ll walk you through how to use Envoy Gateway’s SecurityPolicy to enforce OIDC authentication and authorization, using Amazon Cognito as the identity provider.&lt;/p&gt;&#xA;&lt;p&gt;You’ll learn how to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set up Envoy Gateway in your Kubernetes cluster&lt;/li&gt;&#xA;&lt;li&gt;Configure a Gateway + HTTPRoute for HTTPS traffic&lt;/li&gt;&#xA;&lt;li&gt;Attach a SecurityPolicy to protect backend services&lt;/li&gt;&#xA;&lt;li&gt;Validate JWT tokens and apply fine-grained access control&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;🎯 Everything is handled at the gateway layer — your backend stays clean and simple.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing the Gateway: A Deep Dive into Envoy Gateway&#39;s Advanced Security Policy</title>
      <link>https://zhaohuabing.com/post/2025-04-04-kubecon-eu-envoy-gateway-security-policy/</link>
      <pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2025-04-04-kubecon-eu-envoy-gateway-security-policy/</guid>
      <description>&lt;p&gt;Envoy Gateway&amp;rsquo;s Security Policy simplifies access to Envoy&amp;rsquo;s robust security features, eliminating the need for users to navigate complex Envoy configurations. These features include CORS, JWT authentication, Basic Auth, OpenID Connect (OIDC), External Authentication (Ext Auth), and more. This session includes a demo showcasing OIDC authentication and authorization based on JWT claims, offering practical insights for enhancing application security—whether you&amp;rsquo;re an experienced Envoy user or new to open source.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway v 1.2.0 版本发布：新功能与改进介绍</title>
      <link>https://zhaohuabing.com/post/2024-06-16-eg-1.2.0/</link>
      <pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-06-16-eg-1.2.0/</guid>
      <description>&lt;center&gt; 穿藏族服装的少女 - 理塘，甘孜 &lt;/center&gt;&#xA;&lt;p&gt;Envoy Gateway（本文中简称 EG）在 11 月 6 日发布了最新的 1.2.0 版本。该版本带来了一系列激动人心的新特性和改进，本文将为您一一介绍。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Beyond Gateway API: Introducing Envoy Gateway&#39;s Gateway API Extensions</title>
      <link>https://zhaohuabing.com/post/2024-09-22-introducing-envoy-gateways-gateway-api-extensions-en/</link>
      <pubDate>Sat, 31 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-09-22-introducing-envoy-gateways-gateway-api-extensions-en/</guid>
      <description>&lt;center&gt;Osaka City Skyline, Taken in Osaka, Japan, Summer 2024&lt;/center&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This article is a summary of my talk,&amp;quot;&lt;a href=&#34;https://kccncossaidevchn2024.sched.com/event/1eYcX/gateway-api-and-beyond-introducing-envoy-gateways-gateway-api-extensions-jie-api-daeptao-envoyjie-zha-jie-api-huabing-zhao-tetrate&#34;&gt;Gateway API and Beyond: Introducing Envoy Gateway&amp;rsquo;s Gateway API Extensions¹&lt;/a&gt;&amp;quot;, presented at KubeCon China in Hong Kong, August 2024.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/qH2byF7SDO8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;As the official Gateway Controller for the Envoy, &lt;a href=&#34;https://github.com/envoyproxy/gateway&#34;&gt;Envoy Gateway²&lt;/a&gt; provides full support for all the features of the &lt;a href=&#34;https://gateway-api.sigs.k8s.io&#34;&gt;Kubernetes Gateway API³&lt;/a&gt;.In addition, Envoy Gateway extends the Gateway API by introducing a range of enhancements for traffic management, security features, and custom extensions that go beyond the standard API. In this post, we’ll dive into these Envoy Gateway extensions and explore their use cases.&lt;/p&gt;</description>
    </item>
    <item>
      <title>超越 Gateway API：深入探索 Envoy Gateway 的扩展功能</title>
      <link>https://zhaohuabing.com/post/2024-08-31-introducing-envoy-gateways-gateway-api-extensions/</link>
      <pubDate>Sat, 31 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-08-31-introducing-envoy-gateways-gateway-api-extensions/</guid>
      <description>&lt;center&gt;大阪的城市天际线 - 摄于日本大阪，2024 年夏&lt;/center&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;本文是我在 2024 年 8 月于香港举行的 Kubecon China 上的技术分享：&lt;a href=&#34;https://kccncossaidevchn2024.sched.com/event/1eYcX/gateway-api-and-beyond-introducing-envoy-gateways-gateway-api-extensions-jie-api-daeptao-envoyjie-zha-jie-api-huabing-zhao-tetrate&#34;&gt;Gateway API and Beyond: Introducing Envoy Gateway&amp;rsquo;s Gateway API Extensions¹&lt;/a&gt; 的内容总结。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Highlights of Envoy Gateway v1.1.0: What’s New and Improved</title>
      <link>https://zhaohuabing.com/post/2024-06-16-eg-1.1.0-english/</link>
      <pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-06-16-eg-1.1.0-english/</guid>
      <description>&lt;center&gt;Wall Art at In-N-Out Burger in Santa Clara, California&lt;/center&gt;&#xA;&lt;p&gt;Envoy Gateway (EG) released its latest version, 1.1.0, on July 22. This update marks the first feature release since the 1.0 GA (General Availability) version and includes multiple new features and improvements. In this article, I will highlight some of the most important new features.&lt;/p&gt;&#xA;&lt;h3 id=&#34;wasm-extensions&#34;&gt;Wasm Extensions&lt;/h3&gt;&#xA;&lt;p&gt;In 1.1.0, EG introduces support for Wasm extensions in OCI image format through the &lt;code&gt;EnvoyExtensionPolicy&lt;/code&gt; CRD. OCI images facilitate easier management of different versions of Wasm extension plugins and support private images for enhanced access control and security.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway v 1.1.0 版本发布：新功能与改进介绍</title>
      <link>https://zhaohuabing.com/post/2024-06-16-eg-1.1.0/</link>
      <pubDate>Wed, 10 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-06-16-eg-1.1.0/</guid>
      <description>&lt;center&gt;In-N-Out Burger 餐馆墙上的装饰画（摄自加州 Santa Clara）&lt;/center&gt;&#xA;&lt;p&gt;Envoy Gateway（本文中简称 EG）在 7 月 23 日发布了最新的 1.1.0 版本。1.1.0 版本 EG 在 1.0 GA （General Availability）版本后的第一个功能更新版本，包含了多个新特性和改进。本文将为大家介绍我认为其中最重要的几个新特性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Get the Client’s “Real” IP Address with Envoy Gateway ?</title>
      <link>https://zhaohuabing.com/post/2024-05-17-client-ip-en/</link>
      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-05-17-client-ip-en/</guid>
      <description>&lt;p&gt;Just as a river flows from its source through various bends before reaching the sea, a typical HTTP request travels from a client across multiple network hops until it reaches its destination server.&lt;/p&gt;&#xA;&lt;p&gt;During this journey, the request’s original IP address is lost as it moves through multiple network infrastructures such as proxy servers and load balancers. This happens because some of these hops terminate the TCP connection and create a new TCP connection with the next hop.  As a result, the receiving server only sees the IP address of its directly connected hop in the chain rather than the client’s original IP address.&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何通过 Envoy Gateway 得到客户端的真实 IP 地址？</title>
      <link>https://zhaohuabing.com/post/2024-05-17-client-ip/</link>
      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-05-17-client-ip/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;河水出昆仑，东流经玉门，环绝壁，历五山，南至积石，东流入海。其流也，或曲或直，时急时缓，遇山则环，逢谷则奔。渐行渐远，百折千回，至于中原，汇百川，泽九州。其道也，蜿蜒盘旋，绵延万里，波澜壮阔，历千古而不息。——《水经注》&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用服务网格和 Envoy Gateway 构建客户端的可用性和弹性</title>
      <link>https://zhaohuabing.com/post/2024-04-07-client-side-availability-and-resiliency/</link>
      <pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-04-07-client-side-availability-and-resiliency/</guid>
      <description>&lt;h2 id=&#34;如何从客户端角度思考服务的可用性和弹性&#34;&gt;如何从客户端角度思考服务的可用性和弹性&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这是一系列关于 Envoy Gateway 价值的文章之一，该网关已经达到了 1.0 版本的发布里程碑，可以投入生产使用。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;在讨论可用性和弹性时，我们通常是从基础设施和服务的角度来探讨的。我们很少考虑是否可以在客户端采用某种方法来提高后端服务的“实际感知可用性”（即在客户端测量到的服务的可用性）。这主要是因为我们在大部分情况下都无法控制客户端与服务的交互方式。但实际上我们有办法对客户端和服务之间的交互进行控制，从而提高客户端对服务的“实际感知可用性”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>我提交的 PR 为何还没能合入？</title>
      <link>https://zhaohuabing.com/post/2024-03-20-how-to-create-a-pull-request/</link>
      <pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-03-20-how-to-create-a-pull-request/</guid>
      <description>&lt;p&gt;&lt;strong&gt;我提交的 PR 为何还没能合入？如何才能更快地合入我的 PR ？&lt;/strong&gt; 相信这是很多参与开源项目的开发者常常遇到的疑问。&lt;/p&gt;&#xA;&lt;p&gt;对于开发者来说，提交 PR（Pull Reques）是参与开源项目的主要方式。不管是修复一个故障，添加一个新功能，还是改进文档，我们都需要通过提交 PR 的方式将其合入到项目的主分支中。那么，我们提交的 PR 如何才能尽快地被项目接受呢？&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway 发布通用可用版本 1.0.0 ！</title>
      <link>https://zhaohuabing.com/post/2024-03-05-envoy-gateway-ga/</link>
      <pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2024-03-05-envoy-gateway-ga/</guid>
      <description>&lt;p&gt;作者 Envoy Gateway 社区：Alice Wasko (Ambassador Labs), Arko Dasgupta (Tetrate), Congqi Zhu (CECloud), Guy Daich (SAP), Huabing Zhao (Tetrate), Jianpeng He (Tetrate), Xunzhuo Liu (Tencent)&lt;/p&gt;&#xA;&lt;p&gt;今天，我们非常高兴地宣布 Envoy Gateway (EG) 1.0 版本现已面向 Kubernetes 发布。这是一个成熟的版本，已准备好大规模应用于生产环境，它简化了 Envoy 在南北向流量管理中的使用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway：十分钟搞定单点登录（SSO）！</title>
      <link>https://zhaohuabing.com/post/2023-12-07-envoy-gateway-security-policy-oidc/</link>
      <pubDate>Thu, 07 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-12-07-envoy-gateway-security-policy-oidc/</guid>
      <description>&lt;p&gt;单点登录（SSO）简化了用户体验，使用户能够在访问多个应用时只需一次登录。这提高了用户满意度，减少了密码遗忘的风险，同时增强了安全性。但是，实现单点登录并不容易，需要应用程序实现和认证服务器的交互逻辑，增加了应用程序的开发工作量。Envoy Gateway 在最新版本中的安全策略中提供了 OpenID Connect (OIDC) 的能力，采用 Envoy Gateway，无需对应用做任何修改，在十分钟内即可立刻实现单点登录。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy Gateway 安全策略介绍: HTTP Basic Authentication</title>
      <link>https://zhaohuabing.com/post/2023-11-29-envoy-gateway-security-policy-basic-auth/</link>
      <pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-29-envoy-gateway-security-policy-basic-auth/</guid>
      <description>&lt;h2 id=&#34;什么是-envoy-gateway-安全策略&#34;&gt;什么是 Envoy Gateway 安全策略？&lt;/h2&gt;&#xA;&lt;p&gt;Envoy Gateway 中的&lt;a href=&#34;https://gateway.envoyproxy.io/v0.6.0/api/extension_types/#securitypolicy&#34;&gt;安全策略 (SecurityPolicy)&lt;/a&gt; 是 Envoy Gateway 对 Kubernetes Gateway API 的一个扩展资源。SecurityPolicy 采用了 Gateway API 的 &lt;a href=&#34;https://gateway-api.sigs.k8s.io/geps/gep-713/&#34;&gt;Policy Attachment&lt;/a&gt; 机制来对 Gateway API 进行扩展，为 Envoy Gateway 实现了 CORS，JWT，OIDC，Basic Auth 等强大的安全能力。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduce MetaProtocol Proxy: A Layer-7 Proxy Framework Powered by Envoy</title>
      <link>https://zhaohuabing.com/post/2023-11-16-kubecon-na-metaprotocol/</link>
      <pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-16-kubecon-na-metaprotocol/</guid>
      <description>&lt;p&gt;Even with Envoy&amp;rsquo;s powerful filter extension mechanism, writing a proxy for none-http protocols from scratch can be challenging. MetaProtocol Proxy solves this by abstracting layer-7 proxy with a concept called metadata and providing a “batteries included” framework that includes common traffic management capabilities: load balancing, circuit breaker, routing, rate limiting, fault injection, observability, etc. To write a layer-7 proxy for a new protocol, the only thing you need to do is implementing the codec interface.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KubeCon 芝加哥现场报道 - Envoy Gateway Maintainer Alice Wasko</title>
      <link>https://zhaohuabing.com/post/2023-11-16-kubecon-na-lin-alice-wasko/</link>
      <pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-16-kubecon-na-lin-alice-wasko/</guid>
      <description>&lt;h2 id=&#34;videos&#34;&gt;Videos&lt;/h2&gt;&#xA;&lt;p&gt;Bilibili&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1PQ4y1b74N&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;YouTube&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/vfLVVE6b9q0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;采访内容(待整理):&lt;/p&gt;&#xA;&lt;p&gt;Huabing: I will introduce this interview first in Chinese, because the audience are from China. Envoy Gateway 社区的朋友大家好，我们今天有幸邀请到了 Envoy Gateway 的维护者，来自 Emissary 的 Alice。 Alice 从 Envoy Gateway 创建之初就参与了这个项目，今天很有幸能够在 KubeCon 现场对她进行采访。下面我将用英文对 Alice 进行采访。&lt;/p&gt;</description>
    </item>
    <item>
      <title>KubeCon 芝加哥现场报道 - Istio 创始人 Varun Talwar 解密 Istio 开源背后的故事</title>
      <link>https://zhaohuabing.com/post/2023-11-16-kubecon-na-varun-talwar-interview/</link>
      <pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-16-kubecon-na-varun-talwar-interview/</guid>
      <description>&lt;h2 id=&#34;videos&#34;&gt;Videos&lt;/h2&gt;&#xA;&lt;p&gt;Bilibili&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1ZG411S75r&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;YouTube&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/JtD5wL5WABI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;采访内容(译文):&#xA;Huabing：你好， Varun，感谢你接受我们的采访。Varun Talwar 是著名开源项目 Istio 的创始人之一，也是硅谷科技初创公司 Tetrate.io 的联合创始人。那么 Varun，首先能不能给我们简单介绍一下你自己，以及你的背景？&lt;/p&gt;</description>
    </item>
    <item>
      <title>KubeCon 芝加哥现场报道 - Istio 技术指导委员会成员 Lin Sun 分享 Istio 项目历史与未来展望</title>
      <link>https://zhaohuabing.com/post/2023-11-16-kubecon-na-lin-sun-interview/</link>
      <pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-16-kubecon-na-lin-sun-interview/</guid>
      <description>&lt;h2 id=&#34;videos&#34;&gt;Videos&lt;/h2&gt;&#xA;&lt;p&gt;Bilibili&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1Zj411E7wH&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;YouTube&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/O-bHqDpStoE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;采访内容(待整理):&lt;/p&gt;&#xA;&lt;p&gt;Um OK. Let&amp;rsquo;s just switch the image. OK. Um I think you already give us a little bit of background and interaction on yourself. So I, I think it&amp;rsquo;s fair to say you are one of the founder, etcetera.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KubeCon 芝加哥现场报道 - Istio 社区核心维护者 John Howard 分享他高效的秘诀</title>
      <link>https://zhaohuabing.com/post/2023-11-16-kubecon-na-john-howard-interview/</link>
      <pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-16-kubecon-na-john-howard-interview/</guid>
      <description>&lt;h2 id=&#34;videos&#34;&gt;Videos&lt;/h2&gt;&#xA;&lt;p&gt;Bilibili&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1j94y1H7ZX&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;YouTube&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/3sTj5lmoP6c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;采访内容(待整理):&lt;/p&gt;&#xA;&lt;p&gt;Huabing: OK, let&amp;rsquo;s welcome our superstar from Istio community. John Howard, Is my pronunciation correct?&lt;/p&gt;</description>
    </item>
    <item>
      <title>The API Gateway in the Cloud Native Era</title>
      <link>https://zhaohuabing.com/post/2023-11-01-kubecon-shanghai-2023-envoy-gateway-the-api-gateway-in-the-cloud-native-era/</link>
      <pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-11-01-kubecon-shanghai-2023-envoy-gateway-the-api-gateway-in-the-cloud-native-era/</guid>
      <description>&lt;p&gt;EnvoyProx 是云原生时代的代理之一，也是CNCF下的毕业项目之一。Envoy Gateway 是由 EnvoyProxy 的创始人 Matt Klein 发起的 API 网关项目。由我所在公司（Tetrate.io）以及 Emissary、Contour 等其他 API 网关项目共同维护。Envoy Gateway 作为 EnvoyProxy 发起的官方 API 网关项目，是基于 EnvoyProxy 的南北向 API 网关的官方实现，大大降低了使用 EnvoyProxy 的门槛，使用户不必重复“造轮子”来构建 EnvoyProxy 控制平面，并处理难以理解的复杂 xDS 协议和 EnvoyProxy 的配置。Envoy Gateway 使用 Kubernetes Gateway API 作为其配置，可以轻松启动管理南北向流量。Envoy Gateway 在多个社区和积极贡献者的推动下迅速发展。本主题将介绍为什么 Envoy Gateway 是云原生时代的 API 网关。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 发布 1.4.0 版本（代号：Heshun）</title>
      <link>https://zhaohuabing.com/post/2023-06-24-aeraki-1.4.0/</link>
      <pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-06-24-aeraki-1.4.0/</guid>
      <description>&lt;p&gt;Aeraki Mesh 于 2023 年 8 月 13 日发布 1.4.0 版本（版本代号：Heshun），本次发布的最主要的特性是支持了 Istio 1.18.x 系列版本。&lt;/p&gt;&#xA;&lt;p&gt;备注：版本代号来自于这个夏天旅行的一个云南小镇 - 和顺古镇。和顺古镇位于云南省腾冲市，其历史可追溯至明代，迄今已有 600 年历史。其地理位置位于海拔 1500 米左右，气候温和，夏季气温 20 多度，是逃避夏日热浪的一个绝佳去处。除此之处，和其他很多古镇不同的是，该古镇有三千多常驻居民，是一个“活着的古镇”，居住在古镇中可以体验当地居民的日常生活，大家有机会可以去看看。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 发布 1.3.0 版本（代号：Dragonboat）</title>
      <link>https://zhaohuabing.com/post/2023-06-24-aeraki-1.3.0/</link>
      <pubDate>Sat, 24 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-06-24-aeraki-1.3.0/</guid>
      <description>&lt;p&gt;Aeraki Mesh 于 2023 年 6 月 24 日发布 1.3.0 版本（版本代号：Dragonboat），该版本包含了对 Istio 1.16.x 系列版本的支持，以及支持多路复用，gateway 支持 MetaProtoco 等一系列重大的新增特性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Database Mesh: Simplify Redis Cluster with Istio and Aeraki</title>
      <link>https://zhaohuabing.com/post/2023-05-08-manage-redis-with-aeraki-mes-eng/</link>
      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-05-08-manage-redis-with-aeraki-mes-eng/</guid>
      <description>&lt;p&gt;Redis is a high-performing key-value database known for its versatility in supporting a diverse range of data structures and operations, including strings, hashes, lists, sets, and sorted sets. Its robust capabilities make it an ideal choice for caching, session storage, message brokers, and other similar applications.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://istio.io/&#34;&gt;Istio&lt;/a&gt; is one of the most popular service mesh platforms that provides a unified way to connect, secure, and manage microservices. &lt;a href=&#34;https://www.aeraki.net/&#34;&gt;Aeraki Mesh&lt;/a&gt; is a CNCF open-source project that works with Istio and enhances Istio’s capabilities by providing advanced traffic management for non-HTTP protocols including Thrift, Dubbo, Redis, and proprietary protocols.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Database Mesh: 使用 Istio 和 Aeraki 对 Redis 进行流量管理</title>
      <link>https://zhaohuabing.com/post/2023-05-08-manage-redis-with-aeraki-mesh/</link>
      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-05-08-manage-redis-with-aeraki-mesh/</guid>
      <description>&lt;p&gt;Redis 是一种高性能的键值数据库，支持丰富的数据结构和操作，包括字符串、哈希、列表、集合、有序集合等。由于其强大的能力，Redis 被广泛应用于缓存、会话存储、消息代理等场景中。&lt;/p&gt;</description>
    </item>
    <item>
      <title>为什么 Envoy Gateway 是云原生时代的七层网关？</title>
      <link>https://zhaohuabing.com/post/2023-04-11-why-eg-is-the-gateway-in-cloud-native-era/</link>
      <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-04-11-why-eg-is-the-gateway-in-cloud-native-era/</guid>
      <description>&lt;h1 id=&#34;初识-envoy&#34;&gt;初识 Envoy&lt;/h1&gt;&#xA;&lt;p&gt;大家好，我叫赵化冰，是 CNCF 云原生基金会大使，也是一个软件行业老兵和云原生从业者。我还记得，当我 2017 年在 Linux 基金会下的一个开源项目中从事微服务相关工作时，第一次从该项目的一个朋友那里了解到了 Istio/Envoy。从此以后，我就被 Istio/Envoy 的先进设计理念所吸引。我是国内最早一批从事 Istio/Enovy 产品研发的技术人员之一，在 2018 年就主导了 Istio/Envoy 的第一个产品化项目。在后续的工作中，我还研发了大规模 Kubernetes 集群上基于 Envoy 的多租户七层云原生网关，创建了基于 Envoy 的多协议七层网关开源项目 MetaProtocolProxy，以及基于 Envoy/Istio 的多协议服务网格开源项目 Aeraki Mesh（CNCF Sandbox 项目），该项目被腾讯、百度、华为等多个公司采用，在基于 Envoy 的网关和服务网格上支持了超过数十种应用协议。今天，我想和大家聊一聊 Envoy 生态中的新成员 Envoy Gateway，以及为什么我认为 Envoy Gateway 是云原生时代的七层网关。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes Controller 机制详解（二）</title>
      <link>https://zhaohuabing.com/post/2023-04-04-how-to-create-a-k8s-controller-2/</link>
      <pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-04-04-how-to-create-a-k8s-controller-2/</guid>
      <description>&lt;p&gt;在上一篇文章 &lt;a href=&#34;https://www.zhaohuabing.com/post/2023-03-09-how-to-create-a-k8s-controller/&#34;&gt;Kubernetes Controller 机制详解（一）&lt;/a&gt;中，我们学习了 Kubernetes API List/Watch 机制，以及如何采用 Kubernetes client-go 中的 Informer 机制来创建 Controller。该方法需要用户了解 Kubernetes client-go 的实现原理，并在 Controller 的编码中处理较多 Informer 实现相关的细节。包括启动 InformerFactory，将 Watch 到的消息加入到队列，重试等等逻辑。如果有多个副本，还需要加入 Leader Election 的相关代码。如果需如果你创建了自定义的 CRD，可能还希望在创建资源时采用 webhook 对资源进行校验。这些功能都需要用户编写较多的代码。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes Controller 机制详解（一）</title>
      <link>https://zhaohuabing.com/post/2023-03-09-how-to-create-a-k8s-controller/</link>
      <pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-03-09-how-to-create-a-k8s-controller/</guid>
      <description>&lt;p&gt;Kubernetes(简称K8s) 是一套容器编排和管理系统，可以帮助我们部署、扩展和管理容器化应用程序。在 K8s 中，Controller 是一个重要的组件，它可以根据我们的期望状态和实际状态来进行调谐，以确保我们的应用程序始终处于所需的状态。本系列博文将解析 K8s Controller 的实现机制，并介绍如何编写一个 Controller。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh Community Meeting - February 23rd, 2023</title>
      <link>https://zhaohuabing.com/post/2023-02-24-aeraki-mesh-community-meeting/</link>
      <pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-02-24-aeraki-mesh-community-meeting/</guid>
      <description>&lt;p&gt;During this community meeting, we introduced Aeraki Mesh’s newly released Access Log and Service Metrics features. We also invited experts from Boss Zhipin and Shopline to share hands-on examples of Dubbo based on Aeraki Mesh. Furthermore, we introduced the new features of multiplexing and Gateway support for the MetaProtocol application protocol, which are being contributed by the Tencent Games project and Boss Zhipin.&lt;/p&gt;&#xA;&lt;p&gt;The Access Log and Service Metrics functionalities will help users better understand their network performance, troubleshoot issues, and optimize their applications. We’re excited to see how these new features will improve our users&amp;rsquo; experiences with Aeraki Mesh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 社区例会 - 2023-02-23</title>
      <link>https://zhaohuabing.com/post/2023-02-24-aeraki-mesh-community-meeting-en/</link>
      <pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-02-24-aeraki-mesh-community-meeting-en/</guid>
      <description>&lt;p&gt;本次社区会议介绍了 Aeraki Mesh 最新发布的 Access Log，Sevice Metrics 功能，并邀请了来自 Boss 直聘，Shopline 的专家分享基于 Aeraki Mesh 的 Dubbo 实操案例。此外，还介绍了来着腾讯游戏项目和 Boss 直聘正在贡献的多路复用和 Gateway 支持 MetaProtocol 应用协议的新特性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入理解 Istio Metrics</title>
      <link>https://zhaohuabing.com/post/2023-02-14-istio-metrics-deep-dive/</link>
      <pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-02-14-istio-metrics-deep-dive/</guid>
      <description>&lt;p&gt;Istio 为 Service Mesh 中的微服务提供了非常丰富的统计指标（Metrics），这些指标可以让运维人员随时监控应用程序中服务的健康状况，在系统出现线上故障之前就发现潜在问题并进行处理。本文将介绍 Istio Metrics 的实现机制，以帮助读者深入了解其原理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 提供服务级别的 Metrics</title>
      <link>https://zhaohuabing.com/post/2023-02-06-aeraki-metrics/</link>
      <pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2023-02-06-aeraki-metrics/</guid>
      <description>&lt;p&gt;在刚刚发布的最新版本 Aeraki Mesh 1.2.2 中 (对应 meta-protocol-proxy:1.2.3) ，Aeraki Mesh 提供了和 Istio 一致的服务级别指标，包括 istio_requests_total，istio_request_duration_milliseconds，istio_request_byte 和 istio_response_byte。标志着 Aeraki Mesh 为非 HTTP 协议提供的服务治理能力和 HTTP 协议完全对齐，完整覆盖了路由，调用跟踪，访问日志，服务指标等所有能力。&lt;/p&gt;</description>
    </item>
    <item>
      <title>5分钟内将 Dubbo 服务接入 Istio 服务网格</title>
      <link>https://zhaohuabing.com/post/2022-11-18-dubbo-aeraki-mesh-in-5-minutes/</link>
      <pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-11-18-dubbo-aeraki-mesh-in-5-minutes/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://zhaohuabing.com/web-slides/manage-dubbo-in-istio-in-5-minutes/&#34;&gt;幻灯片&lt;/a&gt;&#xA;&lt;a href=&#34;https://aeraki.net&#34;&gt;Aeraki Mesh 官网&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.aeraki.net/zh/docs/v1.x/tutorials/dubbo&#34;&gt;Dubbo 接入教程&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.aeraki.net/zh/docs/v1.x/tutorials/implement-a-custom-protocol&#34;&gt;私有协议接入教程&lt;/a&gt;&#xA;&lt;a href=&#34;https://github.com/aeraki-mesh&#34;&gt;Github&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://zhaohuabing.com/css/hugo-easy-gallery.min.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope&#xA;    itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34; &gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://zhaohuabing.com/web-slides/manage-dubbo-in-istio-in-5-minutes/0.png&#34;  /&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://zhaohuabing.com/web-slides/manage-dubbo-in-istio-in-5-minutes/&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1fP411g7zN&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;</description>
    </item>
    <item>
      <title>Istio Ambient 模式流量管理实现机制详解（三）</title>
      <link>https://zhaohuabing.com/post/2022-10-17-ambient-deep-dive-3/</link>
      <pubDate>Mon, 17 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-10-17-ambient-deep-dive-3/</guid>
      <description>&lt;p&gt;本文将继续介绍 ambient 模式下四层流量处理的实现机制。本文将以 bookinfo 应用中 productpage 访问 reviews 的请求路径为例来分析一个请求从 client 端发出到 server 端处理的四层流量处理流程。&lt;/p&gt;&#xA;&lt;p&gt;reviews 有三个版本的 deployment，我们首先为 v1 和 v2 设置反亲和和亲和规则，以确保 reviews v1 和 productpage 部署在同一个 node 上，reviews v2 和 productpage 部署在不同 node 上，以模拟 client 和 server 分别处于相同 node 和不同 node 中这两种情况。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio Ambient 模式流量管理实现机制详解（二）</title>
      <link>https://zhaohuabing.com/post/2022-09-11-ambient-deep-dive-2/</link>
      <pubDate>Thu, 29 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-11-ambient-deep-dive-2/</guid>
      <description>&lt;p&gt;ambient 模式中，应用 pod 通过 ztunnel 之间的安全通道进行通信。要实现这一点，Istio 需要劫持应用 pod 的 outbound 和 inbound 流量，并转发到 ztunnel 进行处理。这是如何实现的呢？&lt;/p&gt;&#xA;&lt;p&gt;Istio 采用了 iptables 规则和&lt;a href=&#34;https://en.wikipedia.org/wiki/Policy-based_routing&#34;&gt;策略路由（Policy-based Routing）&lt;/a&gt;来将应用 pod 的流量转发到 ztunnel。下面我们以 &lt;a href=&#34;https://www.zhaohuabing.com/post/2022-09-10-try-istio-ambient/&#34;&gt;初探 Istio Ambient 模式&lt;/a&gt; 中安装的 demo 为例来详细介绍 ambient 模式是如何对流量进行劫持，并转发到 ztunnel 中的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>采用 Aeraki Mesh 对 Dubbo 服务进行服务治理</title>
      <link>https://zhaohuabing.com/post/2022-09-26-servicemesh-summit2022-dubbo-aeraki-mesh/</link>
      <pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-26-servicemesh-summit2022-dubbo-aeraki-mesh/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://aeraki.net&#34;&gt;Aeraki Mesh 官网&lt;/a&gt;&#xA;&lt;a href=&#34;https://zhaohuabing.com/zh/docs/v1.x/tutorials/dubbo&#34;&gt;Dubbo 接入教程&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.aeraki.net/zh/docs/v1.x/tutorials/implement-a-custom-protocol&#34;&gt;私有协议接入教程&lt;/a&gt;&#xA;&lt;a href=&#34;https://github.com/aeraki-mesh&#34;&gt;Github&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&lt;style&gt;&#xA;    #biliplayer {&#xA;      width: 100%;&#xA;      height: 600px;&#xA;    }&#xA;    @media only screen and (min-device-width: 320px) and (max-device-width: 480px) {&#xA;      #biliplayer {&#xA;        width: 100%;&#xA;        height: 250px;&#xA;      }&#xA;    }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;    &lt;div&gt;&#xA;        &lt;iframe id=&#34;biliplayer&#34; src=&#34;//player.bilibili.com/player.html?bvid=BV1oe4y167kz&amp;page=1&#34; scrolling=&#34;no&#34; border=&#34;0&#34; frameborder=&#34;no&#34; framespacing=&#34;0&#34; allowfullscreen=&#34;true&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;</description>
    </item>
    <item>
      <title>Try out Istio Ambient mode</title>
      <link>https://zhaohuabing.com/post/2022-09-10-try-istio-ambient-english/</link>
      <pubDate>Sat, 10 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-10-try-istio-ambient-english/</guid>
      <description>&lt;p&gt;Ambient is a new data-plane model that Istio has just announced support for. In this post, we will try to install Istio’s ambient model and use the bookinfo demo to experience the L4 and L7 capabilities offered by ambient.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Note: L4 refers to the four layers of the OSI standard network model, i.e., TCP layer processing. L7 refers to layer seven of the OSI standard network model, which is the application layer processing, generally referred to as HTTP protocol processing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>初探 Istio Ambient 模式</title>
      <link>https://zhaohuabing.com/post/2022-09-10-try-istio-ambient/</link>
      <pubDate>Sat, 10 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-10-try-istio-ambient/</guid>
      <description>&lt;p&gt;Ambient 是 Istio 刚刚宣布支持的一种新的数据面模式，在本篇文章中，我们将尝试安装 Istio 的 ambient 模式，并采用 bookinfo demo 来体验 ambient 提供的 L4 和 L7 能力。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;备注： L4 指 OSI 标准网络模型的四层，即 TCP 层的处理。 L7 指 OSI 标准网络模型的七层，即应用层的处理，一般指的是 HTTP 协议的处理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>译文：Istio Ambient 模式安全架构深度解析</title>
      <link>https://zhaohuabing.com/post/2022-09-09-ambient-mesh-security-deep-dive/</link>
      <pubDate>Fri, 09 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-09-ambient-mesh-security-deep-dive/</guid>
      <description>&lt;p&gt;深入分析刚刚公布的 &lt;a href=&#34;https://www.zhaohuabing.com/post/2022-09-08-introducing-ambient-mesh/&#34;&gt;Istio ambient mesh&lt;/a&gt;（Istio 的一个无 sidecar 数据平面）对于服务网格的安全来说意味着什么。&lt;/p&gt;&#xA;&lt;p&gt;我们最近发布了 Istio ambient mesh，它是 Istio 的一个无 sidecar 数据平面。正如&lt;a href=&#34;https://www.zhaohuabing.com/post/2022-09-08-introducing-ambient-mesh/&#34;&gt;公告博客&lt;/a&gt;中所说，我们使用 ambient mesh 解决的首要问题是简化操作、更广泛的应用兼容性、降低基础设施成本和提高性能。在设计 ambient 数据平面时，我们仔细地平衡操作、成本和性能的相关问题，同时避免牺牲安全或功能。由于 ambient 组件运行在应用 pod 之外，安全边界已经发生了变化&amp;ndash;我们相信会更好。在这篇博客中，我们将详细介绍这些变化，并比较与 sidecar 部署模式的差异。&lt;/p&gt;</description>
    </item>
    <item>
      <title>译文：重磅消息 - Istio 引入 Ambient Mesh 模式</title>
      <link>https://zhaohuabing.com/post/2022-09-08-introducing-ambient-mesh/</link>
      <pubDate>Thu, 08 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-08-introducing-ambient-mesh/</guid>
      <description>&lt;p&gt;译者按：Istio 于2022年9月7日宣布了一种全新的数据平面模式 “ambient mesh”（ambient 意思是“环境的”，这里指 ambient mesh 使用了环境中的共享代理而不是 sidecar，下文直接使用英文原文），简单地讲就是将数据面的代理从应用 pod 中剥离出来独立部署，以彻底解决 mesh 基础设施和应用部署耦合的问题。该变化是 Istio 自创建以来的第二次大的架构变动，也说明 Istio 社区在持续创新，以解决 service mesh 生产中面临的实际问题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Aeraki Mesh 实现零代码侵入的 Dubbo 服务调用跟踪</title>
      <link>https://zhaohuabing.com/post/2022-09-06-aeraki-mesh-tracing/</link>
      <pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-09-06-aeraki-mesh-tracing/</guid>
      <description>&lt;h2 id=&#34;安装示例程序&#34;&gt;安装示例程序&lt;/h2&gt;&#xA;&lt;p&gt;如果你还没有安装示例程序，请参照 &lt;a href=&#34;https://zhaohuabing.com/zh/docs/v1.0/quickstart/&#34;&gt;快速开始&lt;/a&gt; 安装 Aeraki，Istio 及示例程序。&lt;/p&gt;&#xA;&lt;p&gt;执行完成后，在 meta-dubbo 这个 NS 中安装了基于 MetaProtocol 实现的 Dubbo 协议的示例程序。&#xA;我们将采用该 Dubbo 示例程序来进行测试。Dubbo Demo 程序的调用关系为：dubbo-sample-consumer &amp;ndash;&amp;gt; dubbo-sample-provider &amp;ndash;&amp;gt; dubbo-sample-second-provider 。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MetaProtocol Proxy 代码解读：Connection Manager</title>
      <link>https://zhaohuabing.com/post/2022-06-30-metaprotocol-proxy-connection-manager/</link>
      <pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-06-30-metaprotocol-proxy-connection-manager/</guid>
      <description>&lt;p&gt;ConnectionManager 是 MeataProtocol Proxy 的入口类。想要了解 MetaProtocol Proxy 的实现原理，可以从该类着手。&lt;/p&gt;&#xA;&lt;h2 id=&#34;envoy-network-filter-介绍&#34;&gt;Envoy Network Filter 介绍&lt;/h2&gt;&#xA;&lt;p&gt;MetaProtocol Proxy 框架部分实现为 Envoy 中的一个 Network Filter。Enovy 通过 Listener 接收 Downstream 的连接，然后将收取到的 TCP 数据流发送给 TCP filter chain 中的 MetaProtocol Proxy 处理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 正式成为 CNCF 沙箱项目</title>
      <link>https://zhaohuabing.com/post/2022-06-17-aeraki-mesh-cncf-sandbox/</link>
      <pubDate>Tue, 26 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-06-17-aeraki-mesh-cncf-sandbox/</guid>
      <description>&lt;p&gt;6月15日，我创建的 &lt;a href=&#34;https://aeraki.net&#34;&gt;Aeraki Mesh&lt;/a&gt; 项目通过了全球顶级开源基金会云原生计算基金会（CNCF）技术监督委员会评定，正式成为CNCF 沙箱项目！这意味着 Aeraki Mesh 得到了云原生开源社区的认可，而且加入 CNCF 也保证了项目的中立和开源开放，为 Aeraki Mesh 在云原生生态系统的进一步发展迈出了坚定的一步。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tencent Music’s service mesh practice with Istio and Aeraki(Istio &#43; Aeraki 在腾讯音乐的服务网格落地)</title>
      <link>https://zhaohuabing.com/post/2022-04-26-aeraki-tencent-music-istiocon2022/</link>
      <pubDate>Tue, 26 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-04-26-aeraki-tencent-music-istiocon2022/</guid>
      <description>&lt;h2 id=&#34;istiocon-介绍&#34;&gt;IstioCon 介绍&lt;/h2&gt;&#xA;&lt;p&gt;IstioCon 是 Istio 社区一年一度举行的全球线上峰会，此次峰会包含主题演讲、技术演讲、闪电演讲、研讨会和路线图会议等多种形态，聚焦社区新特性、生产落地案例、动手实战、社区生态发展等话题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Areaki Mesh 在 2022 冬奥会视频直播应用中的服务网格实践</title>
      <link>https://zhaohuabing.com/post/2022-03-30-aeraki-mesh-winter-olympics-practice/</link>
      <pubDate>Wed, 30 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-03-30-aeraki-mesh-winter-olympics-practice/</guid>
      <description>&lt;h2 id=&#34;主题简介&#34;&gt;主题简介&lt;/h2&gt;&#xA;&lt;p&gt;服务网格已经成为微服务的基础设施，但目前主流的服务网格产品只能处理 HTTP 协议，不支持其他七层协议，是服务网格落地的主要困难之一。本次直播分享主要介绍腾讯云服务网格团队开源的 Aeraki Mesh 项目如何通过扩展 Istio 来支持 Thrift，Dubbo 等开源协议以及私有协议，并分享腾讯融媒体采用 Aeraki Mesh 支撑 2022 冬奥会视频直播的实践经验&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki Mesh 加入 CNCF 云原生全景图</title>
      <link>https://zhaohuabing.com/post/2022-03-02-aeraki-cncf-landscape/</link>
      <pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-03-02-aeraki-cncf-landscape/</guid>
      <description>&lt;p&gt;近日，Aeraki Mesh 正式进入 CNCF 云原生全景图，位于 &lt;a href=&#34;https://landscape.cncf.io/card-mode?category=service-mesh&amp;amp;grouping=category&#34;&gt;Service Mesh&lt;/a&gt; 类别下。CNCF Landscape 在云原生实践过程中的每个环节帮助用户了解有哪些具体的软件和产品选择，Aeraki Mesh 进入 CNCF Landscape，意味着 Aeraki Mesh 正式成为了 CNCF 认可的构建云原生最佳实践中的一环。&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Pass the Certified Kubernetes Administrator (CKA) Exam Without Any Stress?</title>
      <link>https://zhaohuabing.com/post/2022-02-08-how-to-prepare-cka-en/</link>
      <pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-02-08-how-to-prepare-cka-en/</guid>
      <description>&lt;p&gt;The CKA exam is not that hard. You can pass the CKA exam in less than 3 months without any stress if you follow the steps in this post to prepare. You have my word. I’ve tried myself and just successfully get my CKA certificate!&lt;/p&gt;&#xA;&lt;h1 id=&#34;how-much-time-do-i-need-to-prepare-for-the-cka-exam&#34;&gt;How much time do I need to prepare for the CKA exam?&lt;/h1&gt;&#xA;&lt;p&gt;It depends, an experienced DevOps engineer could spend much less time than a newbie to prepare, but still get a high score in the exam. In general, I suggest spending 30 minutes to 1 hour to practice each day, and the preparation could last for 3 months if you don’t have much experience in K8s yet, or less if you have already worked with K8s for some time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何成功通过 CKA 考试？</title>
      <link>https://zhaohuabing.com/post/2022-02-08-how-to-prepare-cka/</link>
      <pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-02-08-how-to-prepare-cka/</guid>
      <description>&lt;h1 id=&#34;了解-cka-考察的内容&#34;&gt;了解 CKA 考察的内容&lt;/h1&gt;&#xA;&lt;p&gt;在开始准备考试前一定要阅读&lt;a href=&#34;https://github.com/cncf/curriculum&#34;&gt;CNCF 官方考试大纲&lt;/a&gt;，了解 CKA 考察考生的主要内容，以在备考时做到知己知彼，有的放矢，根据该考试大纲进行针对性的准备和练习。该大纲会根据 K8s 的版本进行更新，但每个版本中涉及的考试内容变化不大，下面是我准备考试时的版本（v1.22）要求的主要内容：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki 教程系列：如何开发一个自定义协议？</title>
      <link>https://zhaohuabing.com/post/2022-01-23-aeraki-how-to-implement-a-custom-protocol/</link>
      <pubDate>Sun, 23 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-01-23-aeraki-how-to-implement-a-custom-protocol/</guid>
      <description>&lt;p&gt;MetaProtocol Proxy 提供了一个良好的协议扩展机制，使得我们可以基于 MetaProtocol Proxy 快速实现一个自定义协议的七层代理。&lt;/p&gt;&#xA;&lt;p&gt;由于 MetaProtocol Proxy 已经实现了一个七层协议代理所需的大部分功能，包括七层负载均衡、RDS 动态路由、本地限流、全局限流、请求 Metrics 收集等，更多丰富的功能还在持续开发中。因此基于 MetaProtocol 进行开发极大简化了实现一个七层网络代理的工作，我们只需要实现编解码的少量代码，即可得到一个自定义协议的七层代理。一般来说，实现一个自定义协议只需要数百行代码。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki 教程系列：如何设置全局限流规则？</title>
      <link>https://zhaohuabing.com/post/2022-01-13-aeraki-global-ratelimit/</link>
      <pubDate>Thu, 13 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-01-13-aeraki-global-ratelimit/</guid>
      <description>&lt;p&gt;Aeraki 可以帮助你在服务网格中管理任何七层协议。目前 Aeraki 已经支持了 Dubbo、Thrit、Redis 等开源协议。你还可以使用 Aeraki 的 MetaProtocol 协议扩展框架来管理私有协议的七层流量。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki 教程系列：如何设置本地限流规则？</title>
      <link>https://zhaohuabing.com/post/2022-01-12-aeraki-local-ratelimit/</link>
      <pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-01-12-aeraki-local-ratelimit/</guid>
      <description>&lt;p&gt;Aeraki 可以帮助你在服务网格中管理任何七层协议。目前 Aeraki 已经支持了 Dubbo、Thrit、Redis 等开源协议。你还可以使用 Aeraki 的 MetaProtocol 协议扩展框架来管理私有协议的七层流量。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aeraki 教程系列：如何设置路由规则？</title>
      <link>https://zhaohuabing.com/post/2022-01-11-aeraki-routing/</link>
      <pubDate>Tue, 11 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2022-01-11-aeraki-routing/</guid>
      <description>&lt;p&gt;Aeraki 可以帮助你在服务网格中管理任何七层协议。目前 Aeraki 已经支持了 Dubbo、Thrit、Redis 等开源协议。你还可以使用 Aeraki 的 MetaProtocol 协议扩展框架来管理私有协议的七层流量。&lt;/p&gt;</description>
    </item>
    <item>
      <title>译文：服务网格将使用 eBPF ？是的，但 Envoy 代理将继续存在</title>
      <link>https://zhaohuabing.com/post/2021-12-19-ebpf-for-service-mesh/</link>
      <pubDate>Sat, 18 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2021-12-19-ebpf-for-service-mesh/</guid>
      <description>&lt;p&gt;译者按：这篇博客非常清晰地阐述了目前很热的 eBPF 和 Service Mesh 的关系，并分别介绍 Envoy 在几种不同的数据平面架构模型中的位置，以及这几种架构模型各自的优势和权衡。最近我和同事以及社区的同学就引入 eBPF 之后 Service Mesh 的架构演进做了一些讨论，结论和 Solo 的这篇博客中的某些观点类似。作为 Linux 内核的一种扩展能力，eBPF 并不会替换 Envoy 的七层代理能力，而是作为 Service Mesh 数据面的一个增强技术。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Envoy 源码流程图</title>
      <link>https://zhaohuabing.com/post/2021-08-11-envoy-code/</link>
      <pubDate>Wed, 11 Aug 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2021-08-11-envoy-code/</guid>
      <description>&lt;p&gt;最近在实现 &lt;a href=&#34;https://github.com/aeraki-mesh/meta-protocol-proxy&#34;&gt;MetaProtocol&lt;/a&gt; 时阅读了 Envoy 相关的一些源码。这里将一些重要流程的时序图记录下来，以备后续查看。&lt;/p&gt;&#xA;&lt;h1 id=&#34;tcp-proxy&#34;&gt;TCP Proxy&lt;/h1&gt;&#xA;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://zhaohuabing.com/css/hugo-easy-gallery.min.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope&#xA;    itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34; &gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://zhaohuabing.com/img/2021-08-11-envoy-code/tcpproxy.png&#34; alt=&#34;TCP Proxy 时序图&#34;&#xA;         /&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://zhaohuabing.com/img/2021-08-11-envoy-code/tcpproxy.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;    &lt;figcaption align=&#34;center&#34;&gt;&#xA;      &lt;p&gt;TCP Proxy 时序图&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h1 id=&#34;dubbo-proxy&#34;&gt;Dubbo Proxy&lt;/h1&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope&#xA;    itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34; &gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://zhaohuabing.com/img/2021-08-11-envoy-code/dubboproxy.png&#34; alt=&#34;Dubbo Proxy 时序图&#34;&#xA;         /&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://zhaohuabing.com/img/2021-08-11-envoy-code/dubboproxy.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;    &lt;figcaption align=&#34;center&#34;&gt;&#xA;      &lt;p&gt;Dubbo Proxy 时序图&lt;/p&gt;&#xA;    &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h1 id=&#34;rds&#34;&gt;RDS&lt;/h1&gt;&#xA;&lt;p&gt;RDS（路由发现服务）的代码包括下面三个主要的流程：&lt;/p&gt;</description>
    </item>
    <item>
      <title>全栈服务网格 - Aeraki 助你在 Istio 服务网格中管理任何七层流量</title>
      <link>https://zhaohuabing.com/post/2021-07-10-full-stack-service-mesh/</link>
      <pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2021-07-10-full-stack-service-mesh/</guid>
      <description>&lt;h2 id=&#34;主题简介&#34;&gt;主题简介&lt;/h2&gt;&#xA;&lt;p&gt;流量管理是 Istio 服务网格的核心能力，然而 Istio 缺省只提供了 HTTP 和 gRPC 两种协议的七层管理能力。对于微服务中常用的其他协议，包括 RPC、Messaging、Cache、Database等，Istio 只支持在四层上对这些协议进行处理。这导致我们将微服务应用迁移到 Istio 服务网格时，无法充分利用服务网格提供的流量管理能力。开源项目 Aeraki 提供了一个第三方协议的扩展框架，支持在 Istio 中对任意七层流量进行管理，提供动态路由、负载均衡、熔断等流量管理能力。本次分享将介绍如何使用 Aeraki 在 Istio 服务网格中管理任何七层协议，包括 Thrift，Dubbo，Redis，以及私有 RPC 协议等，并演示一个使用 Aeraki 管理第三方 RPC 协议的示例。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 知识图谱</title>
      <link>https://zhaohuabing.com/post/2020-04-02-istio-mindmap/</link>
      <pubDate>Fri, 02 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-04-02-istio-mindmap/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://zhaohuabing.com/mindmap/istio.html&#34;&gt;Mind Map&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Istio&#xA;&lt;ul&gt;&#xA;&lt;li&gt;流量管理&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2018-09-25-istio-traffic-management-impl-intro/&#34;&gt;Istio流量管理实现机制深度解析&#xA;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-12-07-cnbps2020-istio-traffic-management/&#34;&gt;Istio 流量管理原理与协议扩展&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;可见性&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-06-22-using-opentracing-with-istio/&#34;&gt;实现方法级调用跟踪&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-07-02-using-opentracing-with-istio/&#34;&gt;实现 Kafka 消息调用跟踪&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;协议扩展&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2021-03-02-manage-any-layer-7-traffic-in-istio/&#34;&gt;如何在 Isito 中支持 Dubbo、Thrift、Redis，以及任何七层协议？&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-10-14-redis-cluster-with-istio/&#34;&gt;在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/aeraki-mesh/aeraki&#34;&gt;Aeraki: Manage any layer 7 traffic in an Istio service mesh&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;故障定位&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-09-11-headless-mtls/&#34;&gt;Headless Service&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-09-05-istio-sidecar-dependency/&#34;&gt;Sidecar 启动依赖&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tencentcloudcontainerteam.github.io/tke-handbook/skill/capture-packets-in-container.html&#34;&gt;Pod 内抓包&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;源码分析&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-10-21-pilot-discovery-code-analysis/&#34;&gt;Pilot 源码解析&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-02-18-pilot-service-registry-code-analysis/&#34;&gt;Istio 服务注册机制&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2018-10-29-envoy-build/&#34;&gt;Envoy Proxy 构建分析&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/2018/05/23/istio-auto-injection-with-webhook/&#34;&gt;Sidecar 自动注入&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>腾讯云容器网络介绍</title>
      <link>https://zhaohuabing.com/post/2021-03-24-tke-network-mode/</link>
      <pubDate>Wed, 24 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2021-03-24-tke-network-mode/</guid>
      <description>&lt;p&gt;K8s 对于集群 Pod 的网络模型只有下面两点简单的要求：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;节点上的 Pod 可以不通过 NAT 和其他任何节点上的 Pod 通信&lt;/li&gt;&#xA;&lt;li&gt;节点上的代理（比如：系统守护进程、kubelet）可以和节点上的所有 Pod 通信&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;在实现该网络模型时，为了应对不同的使用场景，TKE（Tencent Kubernetes Engine）提供了 Global Router 和 VPC-CNI 两种网络模式。本文中，我们将通过这两种模式下数据包的转发流程来分析这两种模式各自的实现原理。本文还会对比分析不同网络模式下的网络效率和资源使用情况，以便于大家在创建 TKE 集群时根据应用对网络的需求和使用成本选择合适的网络模型。&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Manage Any Layer-7 Traffic in an Istio Service Mesh?</title>
      <link>https://zhaohuabing.com/post/2021-03-02-manage-any-layer-7-traffic-in-istio/</link>
      <pubDate>Tue, 02 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2021-03-02-manage-any-layer-7-traffic-in-istio/</guid>
      <description>&lt;p&gt;备注：本文根据腾讯云赵化冰和知乎唐阳在 IstioCon 2021 中的演讲 &lt;a href=&#34;https://events.istio.io/istiocon-2021/sessions/how-to-manage-any-layer-7-traffic-in-an-istio-service-mesh/&#34;&gt;“How to Manage Any Layer-7 Traffic in an Istio Service Mesh?”&lt;/a&gt; 整理而成。&lt;/p&gt;&#xA;&lt;p&gt;大家好，今天我们想和大家分享的主题是如何扩展 Istio 以支持任何七层协议？作为云原生领域中一个人气非常高的开源项目， Istio 目前已经基本成为了 Service Mesh 的事实标准。腾讯云上也提供了基于 Istio 进行增强，和 Istio API 完全兼容的 Service Mesh 管理服务 TCM（Tencent Cloud Mesh），以帮助我们的用户以较小的迁移成本和维护代价快速利用到 Service Mesh 提供的流量管理和服务治理能力。今天非常高兴能够有这个机会来和大家一起分享一下我们在此过程中的一些经验。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 流量管理原理与协议扩展</title>
      <link>https://zhaohuabing.com/post/2020-12-07-cnbps2020-istio-traffic-management/</link>
      <pubDate>Mon, 07 Dec 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-12-07-cnbps2020-istio-traffic-management/</guid>
      <description>&lt;p&gt;通过本次的分享，听众可以理解Istio流量管理背后的实现原理，包括控制面流量管理模型和数据面流量转发机制。本次分享还将介绍如何对Istio进行扩展，以支持更多地七层协议，如dubbo，thrift，redis等等。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CNBPS 2020：云原生应用架构专场介绍</title>
      <link>https://zhaohuabing.com/post/2020-11-12-cnbps2020/</link>
      <pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-11-12-cnbps2020/</guid>
      <description>&lt;p&gt;11月19-21日，CNBPS 2020重磅回归！&lt;/p&gt;&#xA;&lt;p&gt;作为一年一度的云原生科技盛会，众多云原生届的“顶流”将在这里聚集，展现云原生世界的科技想象力。&lt;/p&gt;&#xA;&lt;p&gt;了解云原生趋势和最佳实践？来这一场就够了！&lt;/p&gt;</description>
    </item>
    <item>
      <title>在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像</title>
      <link>https://zhaohuabing.com/post/2020-10-14-redis-cluster-with-istio/</link>
      <pubDate>Tue, 13 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-10-14-redis-cluster-with-istio/</guid>
      <description>&lt;p&gt;Redis 是一个高性能的 key-value 存储系统，被广泛用于微服务架构中。如果我们想要使用 Redis 集群模式提供的高级特性，则需要对客户端代码进行改动，这带来了应用升级和维护的一些困难。利用 Istio 和 Envoy ，我们可以在不修改客户端代码的前提下实现客户端无感知的 Redis Cluster 数据分片，并提供读写分离、流量镜像等高级流量管理功能。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 运维实战系列（3）：让人头大的『无头服务』-下</title>
      <link>https://zhaohuabing.com/post/2020-09-19-headless-mtls/</link>
      <pubDate>Sat, 19 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-09-19-headless-mtls/</guid>
      <description>&lt;p&gt;本系列文章将介绍用户从 Spring Cloud，Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验，以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 运维实战系列（2）：让人头大的『无头服务』-上</title>
      <link>https://zhaohuabing.com/post/2020-09-11-headless-mtls/</link>
      <pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-09-11-headless-mtls/</guid>
      <description>&lt;p&gt;本系列文章将介绍用户从 Spring Cloud，Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验，以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 运维实战系列（1）：应用容器对 Envoy Sidecar 的启动依赖问题</title>
      <link>https://zhaohuabing.com/post/2020-09-05-istio-sidecar-dependency/</link>
      <pubDate>Sat, 05 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-09-05-istio-sidecar-dependency/</guid>
      <description>&lt;p&gt;本系列文章将介绍用户从 Spring Cloud，Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验，以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google Cloud 服务网格：Traffic Director 与 Anthos Service Mesh 的左右互搏</title>
      <link>https://zhaohuabing.com/post/2020-08-13-gcloud-service-mesh/</link>
      <pubDate>Thu, 13 Aug 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-08-13-gcloud-service-mesh/</guid>
      <description>&lt;p&gt;作为开源 Service Mesh 明星项目 Istio 背后的主要厂商，Google 也在其公有云上推出了 Service Mesh 管理服务。让人迷惑的是 Google Cloud 上有两个 Service Mesh 产品：Traffic Director 与 Anthos Service Mesh。Google Cloud 首先在2019年3月发布了其第一个 Service Mesh 产品 Traffic Director，随后不久在2019 年9月紧接着发布了另一个 Service Mesh 产品 Anthos Service Mesh，随后两个产品独立并行发展，直到如今。&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Integrate Your Service Registry with Istio?</title>
      <link>https://zhaohuabing.com/post/2020-06-12-third-party-registry-english/</link>
      <pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-06-12-third-party-registry-english/</guid>
      <description>&lt;p&gt;Microservice is a powerful software architecture to escalate innovations, and many businesses have been adopting microservice for a long time. However, the transition from monolith to microservice comes with costs. Fundamentally, microservices are distributed systems, often in large scales, which bring the burden of networking such as service discovery, retry, circuit breaker, as well as the observability such as metrics, logging, and distributed tracing.&lt;/p&gt;&#xA;&lt;p&gt;Istio helps microservices to offloads these common concerns to a dedicated infrastructure layer, so the microservices themselves can shift the burden of microservices to Istio, and focus on their own business logic. With all the promising benefits, more and more microservices projects begin to consider migrating their own microservices infrastructure to Istio.&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何将第三方服务中心注册集成到 Istio ？</title>
      <link>https://zhaohuabing.com/post/2020-06-02-third-party-registry/</link>
      <pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-06-02-third-party-registry/</guid>
      <description>&lt;p&gt;作为云原生服务网格领域的热门开源项目，Istio 可以为微服务提供无侵入的流量管理、安全通信、服务可见性等服务治理能力。目前越来越多的微服务项目开始考虑将自己的微服务基础设施向 Istio 进行迁移。&lt;/p&gt;</description>
    </item>
    <item>
      <title>一文带你彻底厘清 Isito 中的证书工作机制</title>
      <link>https://zhaohuabing.com/post/2020-05-25-istio-certificate/</link>
      <pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-05-25-istio-certificate/</guid>
      <description>&lt;p&gt;在上一篇文章&lt;a href=&#34;https://zhaohuabing.com/post/2020-05-19-k8s-certificate/&#34;&gt;一文带你彻底厘清 Kubernetes 中的证书工作机制&lt;/a&gt;中，我们介绍了 Kubernetes 中证书的工作机制。在这篇文章中，我们继续探讨 Istio 是如何使用证书来实现网格中服务的身份认证和安全通信的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>一文带你彻底厘清 Kubernetes 中的证书工作机制</title>
      <link>https://zhaohuabing.com/post/2020-05-19-k8s-certificate/</link>
      <pubDate>Tue, 19 May 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-05-19-k8s-certificate/</guid>
      <description>&lt;p&gt;接触 Kubernetes 以来，我经常看到 Kubernetes 在不同的地方使用了证书（Certificate），在 Kubernetes 安装和组件启动参数中也需要配置大量证书相关的参数。但是 Kubernetes 的文档在解释这些证书的工作机制方面做得并不是太好。经过大量的相关阅读和分析工作后，我基本弄清楚了 Kubernetes 中证书的使用方式。在本文中，我将试图以一种比官方文档更容易理解的方式来说明 Kubernetes 中证书相关的工作机制，如果你也存在这方面的疑惑，希望这篇文章对你有所帮助。&lt;/p&gt;</description>
    </item>
    <item>
      <title>数字证书原理</title>
      <link>https://zhaohuabing.com/post/2020-03-19-pki/</link>
      <pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-03-19-pki/</guid>
      <description>&lt;h1 id=&#34;非对称加密&#34;&gt;非对称加密&lt;/h1&gt;&#xA;&lt;p&gt;在传统的加密算法中，通信的双方会采用一个共享秘钥来对数据进行加密和解密。消息发送方先采用秘钥对明文进行加密然后再进行传送，待接收方收到消息后，再采用秘钥对密文进行界面，以得到明文。由于加密和解密采用的秘钥是相同的，这种加密算法也称为对称加密。采用对称加密的通信过程如下图所示：&#xA;&#xA;  &lt;img src=&#34;https://zhaohuabing.com/img/2020-03-19-pki/symmetric-cryptography.png&#34; alt=&#34;&#34;&gt;&#xA;&#xA;&#xA;图片来源&lt;a href=&#34;https://www.twilio.com/blog/what-is-public-key-cryptography&#34;&gt;twilio&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux network namespace， veth， birdge与路由</title>
      <link>https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/</link>
      <pubDate>Thu, 12 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/</guid>
      <description>&lt;h1 id=&#34;network-namespace&#34;&gt;Network Namespace&lt;/h1&gt;&#xA;&lt;p&gt;A namespace wraps a global system resource in an abstraction that makes it appear to the processes within the namespace that they have  their own isolated instance of the global resource.  Changes to the  global resource are visible to other processes that are members of the namespace, but are invisible to other processes.  One use of       namespaces is to implement containers. (摘录自&lt;a href=&#34;http://man7.org/linux/man-pages/man7/namespaces.7.html&#34;&gt;Linux man page&lt;/a&gt;中对namespace的介绍)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Tun/Tap 介绍</title>
      <link>https://zhaohuabing.com/post/2020-02-24-linux-taptun/</link>
      <pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-02-24-linux-taptun/</guid>
      <description>&lt;h1 id=&#34;什么是tuntap&#34;&gt;什么是Tun/Tap&lt;/h1&gt;&#xA;&lt;p&gt;在计算机网络中，TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备，这些虚拟的网络设备全部用软件实现，并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes 知识图谱</title>
      <link>https://zhaohuabing.com/post/2020-02-22-k8s-mindmap/</link>
      <pubDate>Sat, 22 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-02-22-k8s-mindmap/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://zhaohuabing.com/mindmap/k8s.html&#34;&gt;Mind Map&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kubernetes&#xA;&lt;ul&gt;&#xA;&lt;li&gt;基本理念&#xA;&lt;ul&gt;&#xA;&lt;li&gt;自动化部署，缩扩容和管理容器应用&lt;/li&gt;&#xA;&lt;li&gt;预期状态管理(Desired State Management)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kubernetes API 对象（声明预期状态）&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes Control Plane（确保集群当前状态匹配预期状态）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kubernetes Master&#xA;&lt;ul&gt;&#xA;&lt;li&gt;kube-apiserver（API Server）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对外提供各种对象的CRUD REST接口&lt;/li&gt;&#xA;&lt;li&gt;对外提供Watch机制，通知对象变化&lt;/li&gt;&#xA;&lt;li&gt;将对象存储到Etcd中&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;kube-controller-manager（守护进程）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;功能：通过apiserver监视集群的状态，并做出相应更改，以使得集群的当前状态向预期状态靠拢&lt;/li&gt;&#xA;&lt;li&gt;controllers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;replication controller&lt;/li&gt;&#xA;&lt;li&gt;endpoints controller&lt;/li&gt;&#xA;&lt;li&gt;namespace controller&lt;/li&gt;&#xA;&lt;li&gt;serviceaccounts controller&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;kube-scheduler（调度器）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;功能：将Pod调度到合适的工作节点上运行&lt;/li&gt;&#xA;&lt;li&gt;调度的考虑因素&#xA;&lt;ul&gt;&#xA;&lt;li&gt;资源需求&lt;/li&gt;&#xA;&lt;li&gt;服务治理要求&lt;/li&gt;&#xA;&lt;li&gt;硬件/软件/策略限制&lt;/li&gt;&#xA;&lt;li&gt;亲和以及反亲和要求&lt;/li&gt;&#xA;&lt;li&gt;数据局域性&lt;/li&gt;&#xA;&lt;li&gt;负载间的干扰&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Work Node&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kubelet（节点代理）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;接受通过各种机制（主要是通过apiserver）提供的一组PodSpec&lt;/li&gt;&#xA;&lt;li&gt;确保PodSpec中描述的容器处于运行状态且运行状况良好&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Kube-proxy（节点网络代理）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;在节点上提供Kubernetes API中定义Service&lt;/li&gt;&#xA;&lt;li&gt;设置Service对应的IPtables规则&lt;/li&gt;&#xA;&lt;li&gt;进行流量转发（userspace模式）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;部署模式&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Single node&lt;/li&gt;&#xA;&lt;li&gt;Single head node，multiple workers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;API Server，Scheduler，and Controller Manager run on a single node&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Single etcd，HA heade nodes，multiple workers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multiple API Server instances fronted by a load balancer&lt;/li&gt;&#xA;&lt;li&gt;Multiple Scheduler and Controller Manager instances with leader election&lt;/li&gt;&#xA;&lt;li&gt;Single etcd node&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;HA etcd，HA head nodes，multiple workers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multiple API Server instances fronted by a load balancer&lt;/li&gt;&#xA;&lt;li&gt;Multiple Scheduler and Controller Manager instances with leader election&lt;/li&gt;&#xA;&lt;li&gt;Etcd cluster run on nodes seperate from the Kubernetes head nodes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes Federation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;商业模式&#xA;&lt;ul&gt;&#xA;&lt;li&gt;云服务用户：避免使用单一云提供商导致的厂商锁定，避免技术和成本风险&lt;/li&gt;&#xA;&lt;li&gt;云服务厂商：使用Kubernetes来打破AWS的先入垄断地位，抢夺市场份额&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Workload&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pod&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Smalleset deployable computing unit&#xA;- Consist of one or more containers&#xA;- All containers in a pod share &lt;a href=&#34;https://kubernetes.io/docs/concepts/storage/volumes/&#34;&gt;storage&lt;/a&gt;, &lt;a href=&#34;https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/#network-namespace&#34;&gt;network namespacem&lt;/a&gt; and &lt;a href=&#34;https://man7.org/linux/man-pages/man7/cgroups.7.html&#34;&gt;cgroup&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Workload resources(Controllers)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deployment &amp;amp; RelicaSet&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deployment is used to deploy stateless appliations.&lt;/li&gt;&#xA;&lt;li&gt;ReplicaSet ensured a specified numbers of pod replicas are running at a given time.&lt;/li&gt;&#xA;&lt;li&gt;Deployment is used to rollout/update/rollback ReplicaSet.&lt;/li&gt;&#xA;&lt;li&gt;ReplicaSet is not supposed to be used directly, it should be managed by Deployments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;StatefulSet&#xA;&lt;ul&gt;&#xA;&lt;li&gt;StatefulSet is used to deploy stateful applications.&lt;/li&gt;&#xA;&lt;li&gt;SetatefSet require a Headless Service to provide network identity for the pods.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;DaemonSet&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DaemonSet ensures that all(or some) Nodes run a copy of a Pod.&lt;/li&gt;&#xA;&lt;li&gt;Use cases: cluster storage daemon, logs collection daemon, node monitoring daemon.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Job &amp;amp; CronJob&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Job runs pods until a specified number of them have been succcessfully executed.&lt;/li&gt;&#xA;&lt;li&gt;CronJob runs a job periodically on a given schedule.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Storage&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Volume&#xA;&lt;ul&gt;&#xA;&lt;li&gt;purpose&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Persist data across the life span of a Pod&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Data won&amp;rsquo;t lost when a container is restarted&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Share data between containers running together in a Pod&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Volume can be mounted to mutiple containers inside a Pod&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;type&#xA;&lt;ul&gt;&#xA;&lt;li&gt;configMap&lt;/li&gt;&#xA;&lt;li&gt;emptyDir&lt;/li&gt;&#xA;&lt;li&gt;hostPath&lt;/li&gt;&#xA;&lt;li&gt;local&lt;/li&gt;&#xA;&lt;li&gt;persistentVolumeClaim&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Policies&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ResourceQuota&#xA;&lt;ul&gt;&#xA;&lt;li&gt;purpose&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limit the aggregated resource consumption of a Namespace&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Scope&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Namespaced: ResourceQuota is enforced in a Namespace scope, different Namespaces have different Resouce limit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Type&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Compute Resource Quota&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CPU (limits.cpu requests.cpu)&lt;/li&gt;&#xA;&lt;li&gt;Memory (limits.memory requets.memory)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Storage Resource Quota&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Persistent Storage (storage)&lt;/li&gt;&#xA;&lt;li&gt;Ephemeral Storage (ephermal-storage)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Object Count Quota&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Limit of total number of Namespaced resources (count/services)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Request and Limit&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Request: Resources that are guaranteed to get&lt;/li&gt;&#xA;&lt;li&gt;Limit: The maximum amount of resources that one can get&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Network&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Linux Network Virtualization&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-02-24-linux-taptun/&#34;&gt;Linux tun/tap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/#network-namespace&#34;&gt;Network Namespace&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/#veth&#34;&gt;Veth Pair&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-03-12-linux-network-virtualization/#bridge&#34;&gt;Linux bridge&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Vlan&lt;/li&gt;&#xA;&lt;li&gt;Vxlan&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://cizixs.com/2017/09/25/vxlan-protocol-introduction/&#34;&gt;Vxlan原理&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://cizixs.com/2017/09/28/linux-vxlan/&#34;&gt;Linux 上实现 vxlan 网络&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Routing Protocol&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Distance Vector Protocol&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BGP&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Link-State Protocol&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OSPF&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;K8s Network&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Service&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#cluster-ip&#34;&gt;Cluster IP&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provides access in the cluster internally&lt;/li&gt;&#xA;&lt;li&gt;The ClusterIP range is defined in API server startup option &lt;code&gt;-service-cluster-ip-range&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Service port is defined in the Service Manifest&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#nodeport&#34;&gt;NodePort&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provides access at the node level&lt;/li&gt;&#xA;&lt;li&gt;The NodePort range is defined in API server startup option &lt;code&gt;--service-node-port-range&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#loadbalancer&#34;&gt;LoadBalancer&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provides an external IP to allow access from outside of the cluster&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/service/#externalname&#34;&gt;ExternalName&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An alias to an external service&lt;/li&gt;&#xA;&lt;li&gt;DNS redirection&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-09-11-headless-mtls/#%E4%BB%80%E4%B9%88%E6%98%AF%E6%97%A0%E5%A4%B4%E6%9C%8D%E5%8A%A1&#34;&gt;Headless&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Define a Headless service: specify &amp;ldquo;None&amp;rdquo; in for the cluster IP(.spec.clusterIP)&lt;/li&gt;&#xA;&lt;li&gt;No cluster IP allocated to Headless services&lt;/li&gt;&#xA;&lt;li&gt;No load balancing and proxying for Headless service&lt;/li&gt;&#xA;&lt;li&gt;Kube dns returns the IP of the pods backing the service&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#proxy&#34;&gt;Kube Proxy&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provides a proxy server or appliction-level gateway between localhost and the K8s API server&lt;/li&gt;&#xA;&lt;li&gt;Handles locating the apiserver and authenticating (uses cluster configuration and user credential in .kube/config)&lt;/li&gt;&#xA;&lt;li&gt;Can send requests to API server (for example: get the list of services in default namespace &lt;code&gt;localhost:proxy-port/api/v1/namespaces/default/services&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Can send requests to services via url &lt;code&gt;localhost:proxy-port/api/v1/namespaces/namespace_name/services/service_name[:port_name]/proxy/[application url] &lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Kubectl port-forward&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Forward local ports to a pod&lt;/li&gt;&#xA;&lt;li&gt;kebectl port-forward deployment/mydeployment localport:port&lt;/li&gt;&#xA;&lt;li&gt;kebectl port-forward service/myservice localport:port&lt;/li&gt;&#xA;&lt;li&gt;kebectl port-forward pod/mypod localport:port&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Ingress&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#k8s-ingress&#34;&gt;K8s Ingress&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#istio-gateway&#34;&gt;Istio Ingress Gateway&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;DNS&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#services&#34;&gt;Service&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Normal Service&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A/AAA record which resolves name to the Cluster IP&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Name: &lt;code&gt;my-svc.my-namespace.svc.cluster-domain.example&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Example: &lt;code&gt;kubernetes.default.svc.cluster.local. 30 IN A&#x9;172.20.252.11&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;SRV record for each named service port&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Name: &lt;code&gt;_my-port-name._my-port-protocol.my-svc.my-namespace.svc.cluster-domain.&lt;/code&gt;example&lt;/li&gt;&#xA;&lt;li&gt;Example: &lt;code&gt;_https._tcp.kubernetes.default.svc.cluster.local. 5 IN SRV 0 100 443 kubernetes.default.svc.cluster.local.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;A PTR record which resolves Cluster IP to domain name&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Example &lt;code&gt;1.252.20.172.in-addr.arpa. 5&#x9;IN&#x9;PTR&#x9;kubernetes.default.svc.cluster.local.&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Headless Service&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A/AAA record which resolves to the set of IPs of the pods selected by the service&lt;/li&gt;&#xA;&lt;li&gt;N*M SRV records (N pods, M named ports in service)&lt;/li&gt;&#xA;&lt;li&gt;A PTR record which resolves pod IP to domain name of each pod&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;ExternalName&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A CNAME pointing to the domain name of the external service&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Pod&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A/AAA record which resolves name to the pod IP&lt;/li&gt;&#xA;&lt;li&gt;General name&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Name: &lt;code&gt;pod-ip-address.my-namespace.pod.cluster-domain.example&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Example: &lt;code&gt;172-20-0-57.default.pod.cluster.local. 3 IN A&#x9;172.20.0.57&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Pod created by Deployment or DaemonSet exposed by a Service&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;code&gt;pod-ip-address.deployment-name.my-namespace.svc.cluster-domain.example&lt;/code&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns&#34;&gt;CoreDNS&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Plugins&#xA;&lt;ul&gt;&#xA;&lt;li&gt;errors: Erros are logged to stdout&lt;/li&gt;&#xA;&lt;li&gt;prometheus: Metrics of CoreDNS are available at &lt;code&gt;http://localhost:9153/metrics&lt;/code&gt; in Prometheus format&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://coredns.io/plugins/kubernetes/&#34;&gt;kubernetes&lt;/a&gt;: CoreDNS will reply to DNS queries based on IP of the services and pods of Kubernetes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;腾讯云&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2021-03-24-tke-network-mode/#global-router-%E6%A8%A1%E5%BC%8F&#34;&gt;Global Router&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2021-03-24-tke-network-mode/#vpc-cni-%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%BC%8F&#34;&gt;VPC-CNI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/#api-gateway--sidecar-proxy&#34;&gt;API Gateway+Service Mesh&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes CNI插件&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.lijiaocn.com/%E9%A1%B9%E7%9B%AE/2017/04/11/calico-usage.html&#34;&gt;Calico&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Scheduling&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Algorithm: Predicate find a set of available nodes -&amp;gt; Priority select the best suitable node&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Predicates: find available nodes through some conditions: check memory, cpu, disk, etc.&lt;/li&gt;&#xA;&lt;li&gt;Priorities: select a node to run the scheduled pod: select the node with the least amount of pods by default&lt;/li&gt;&#xA;&lt;li&gt;Policy: specify a number of predicates and priorities&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Run a customscheduler&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Policy: &lt;code&gt;--policy-config-file&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Name: &lt;code&gt;--scheduler-name&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Pod Specification: hits for pod scheduling&#xA;&lt;ul&gt;&#xA;&lt;li&gt;NodeName: assign pods to the named node&lt;/li&gt;&#xA;&lt;li&gt;NodeSelector: assign pods to a group of nodes with particular labels&lt;/li&gt;&#xA;&lt;li&gt;Affinity and anti-affinity:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Node&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Node affinity: has the same ability to constrain pods to particular nodes, but is more expressive and powerful&lt;/li&gt;&#xA;&lt;li&gt;Node anti-affinity: use &lt;code&gt;NotIn&lt;/code&gt; and &lt;code&gt;DoesNotExist&lt;/code&gt; to achieve node anti-affinity&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Inter-Pod&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Inter-Pod affinity: co-locate some pods in the same nodes&lt;/li&gt;&#xA;&lt;li&gt;Inter-Pod anti-affinity: distribute some pods in different nodes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;taints and tolerations&#xA;&lt;ul&gt;&#xA;&lt;li&gt;allow a node to repel a set of pods&lt;/li&gt;&#xA;&lt;li&gt;allow pods to be scheduled onto nodes with matching taints&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;SchedulerName: choose a specific scheduler to schedule a pod&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Security&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Background Knowledge&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-03-19-pki/&#34;&gt;Certificate and PKI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-05-19-k8s-certificate/&#34;&gt;Kubernetes 中使用到的证书&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;User Type&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Service Account&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Managed by Kubernetes&lt;/li&gt;&#xA;&lt;li&gt;Represent workloads in the cluster&lt;/li&gt;&#xA;&lt;li&gt;Bound to a specific namespace&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/#normal-user&#34;&gt;Normal User&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Managed out side of Kubernetes&lt;/li&gt;&#xA;&lt;li&gt;Authenticated with a valid certicated signed by the cluster&amp;rsquo;s CA&#xA;&lt;ul&gt;&#xA;&lt;li&gt;User name: Certificate subject &lt;a href=&#34;https://docs.oracle.com/cd/E24191_01/common/tutorials/authz_cert_attributes.html&#34;&gt;Common Name&lt;/a&gt; field&lt;/li&gt;&#xA;&lt;li&gt;Group: Certificate subject &lt;a href=&#34;https://docs.oracle.com/cd/E24191_01/common/tutorials/authz_cert_attributes.html&#34;&gt;Organization&lt;/a&gt; field&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Authentication&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Service account tokens for service accounts&lt;/li&gt;&#xA;&lt;li&gt;Client certifications for normal users&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-05-19-k8s-certificate/#service-account--%E8%AF%81%E4%B9%A6&#34;&gt;Certifications for control plane components communication&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zhaohuabing.com/post/2020-05-19-k8s-certificate/#%E4%BD%BF%E7%94%A8-tls-bootstrapping-%E7%AE%80%E5%8C%96-kubelet-%E8%AF%81%E4%B9%A6%E5%88%B6%E4%BD%9C&#34;&gt;Bootstrap Token&lt;/a&gt; for clusters and nodes bootstrapping&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Authorization&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/&#34;&gt;RBAC&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Namespace Scope&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Role&lt;/li&gt;&#xA;&lt;li&gt;RoleBinding (Associate users retrived from authentication process to Roles)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Cluster Scope&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ClusterRole&lt;/li&gt;&#xA;&lt;li&gt;CluseterRoleBinding (Associate users retrived from authentication process to ClusteRoles)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Helm: package management tool for K8s applications&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Chart: package all k8s manifests as a single tarball&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Chart.yaml: this files contains metadata about this Chart: name, version, keywords&lt;/li&gt;&#xA;&lt;li&gt;templeates: this directorey contains the resource manifests that makes up this application&#xA;&lt;ul&gt;&#xA;&lt;li&gt;deployment&lt;/li&gt;&#xA;&lt;li&gt;services&lt;/li&gt;&#xA;&lt;li&gt;secretes&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;values.yaml: this files contains keys and values that are used to generate the release. These values are replaced in the resource manifests using the Go template syntax&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Repository: HTTP servers that contains charts&lt;/li&gt;&#xA;&lt;li&gt;Helm commands&#xA;&lt;ul&gt;&#xA;&lt;li&gt;helm search hub redis: find redis chart and its repository in helm hub&lt;/li&gt;&#xA;&lt;li&gt;helm sarch repo redis: find redis chart in repositories&lt;/li&gt;&#xA;&lt;li&gt;helm install redis bitnami/redis: install redis chart&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Extending the Kubernetes API&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Custom Resource&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CRD: Define custom resources&lt;/li&gt;&#xA;&lt;li&gt;Custom Resources/Ojbects: Declare the desired spec of a custom resource&lt;/li&gt;&#xA;&lt;li&gt;Custom Controllers: watch-loop to make sure the actual state meet the declared spec&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/&#34;&gt;Aggregated API Server&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deploy an extension API server&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/extend-kubernetes/configure-aggregation-layer/&#34;&gt;Register APIService objects&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Group: API groups this extension API server hosts&lt;/li&gt;&#xA;&lt;li&gt;Version: API version this extension API server hosts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;kube-apiserver proxies client requests to the extension API server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Network Service Mesh: A Big Step Toward Cloud-Native NFV</title>
      <link>https://zhaohuabing.com/post/2020-02-21-network-service-mesh-english/</link>
      <pubDate>Fri, 21 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-02-21-network-service-mesh-english/</guid>
      <description>&lt;p&gt;When hearing about the term “Network Service Mesh” for the first time, you probably are as curious as I was: What exactly is it behind this fancy name? Does it have anything to do with Service Mesh/Istio? It turns out that Network Service Mesh is a sandbox project in the CNCF (Cloud Native Foundation), and it’s also a new hotspot in the cloud-native area. In this post, I’ll dive into the architecture and technical details of Network Service Mesh, and also explore the relationship between it and some other similar technologies you might get confused with, including Service Mesh, SDN, and NFV.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NFV迈向云原生时代：Network Service Mesh项目介绍</title>
      <link>https://zhaohuabing.com/post/2020-02-15-network-service-mesh/</link>
      <pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2020-02-15-network-service-mesh/</guid>
      <description>&lt;h1 id=&#34;前言&#34;&gt;前言&lt;/h1&gt;&#xA;&lt;p&gt;当第一次看到Network Service Mesh这一名词时，你很可能和我一样好奇它到底是什么？是否和Service Mesh有什么关系？Network Service Mesh是云原生领域中一个新的热点，是CNCF（云原生基金会）中的一个沙箱项目。本文将介绍Network Service Mesh的起源和架构，并探讨其与Service Mesh、SDN、NFV等相关技术的区别与联系。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio流量管理实现机制深度解析</title>
      <link>https://zhaohuabing.com/post/2018-09-25-istio-traffic-management-impl-intro/</link>
      <pubDate>Thu, 12 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-09-25-istio-traffic-management-impl-intro/</guid>
      <description>&lt;h1 id=&#34;前言&#34;&gt;前言&lt;/h1&gt;&#xA;&lt;p&gt;Istio作为一个service mesh开源项目,其中最重要的功能就是对网格中微服务之间的流量进行管理,包括服务发现,请求路由和服务间的可靠通信。Istio实现了service mesh的控制面，并整合Envoy开源项目作为数据面的sidecar，一起对流量进行控制。&lt;/p&gt;</description>
    </item>
    <item>
      <title>VIP的实现原理</title>
      <link>https://zhaohuabing.com/post/2019-11-27-vip/</link>
      <pubDate>Wed, 27 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-11-27-vip/</guid>
      <description>&lt;h2 id=&#34;什么是vip&#34;&gt;什么是VIP？&lt;/h2&gt;&#xA;&lt;p&gt;VIP即Virtual IP Address，是实现HA（高可用）系统的一种方案，高可用的目的是通过技术手段避免因为系统出现故障而导致停止对外服务，一般实现方式是部署备用服务器，在主服务器出现故障时接管业务。 VIP用于向客户端提供一个固定的“虚拟”访问地址，以避免后端服务器发生切换时对客户端的影响。&lt;/p&gt;</description>
    </item>
    <item>
      <title>What Can Service Mesh Learn from SDN?</title>
      <link>https://zhaohuabing.com/post/2019-11-23-what-can-service-mesh-learn-from-sdn-english/</link>
      <pubDate>Sat, 23 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-11-23-what-can-service-mesh-learn-from-sdn-english/</guid>
      <description>&lt;p&gt;Service Mesh is yet another emerging fancy tech word in the field of microservices recently. If you have a telecommunication or networking background, you may have already noticed that Service Mesh and SDN (Software Defined Network) look similar. Both of them use a software layer to manage and control the network infrastructure, and they also share the same architecture, which consists of a control plane and a data plane.&lt;/p&gt;&#xA;&lt;p&gt;So what is the relationship between Service Mesh and SDN — Is Service Mesh the next generation of SDN? What can Service Mesh learn from the experience of SDN? I’d like to share some of my own opinions in this article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何降低Istio服务网格中Envoy的内存开销</title>
      <link>https://zhaohuabing.com/post/2019-11-15-envoy-memory-optimize/</link>
      <pubDate>Fri, 15 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-11-15-envoy-memory-optimize/</guid>
      <description>&lt;h2 id=&#34;envoy的内存占用&#34;&gt;Envoy的内存占用&lt;/h2&gt;&#xA;&lt;p&gt;在Istio服务网格中，每个Envoy占用的内存也许并不算多，但所有sidecar增加的内存累积起来则是一个不小的数字。在进行商用部署时，我们需要考虑如何优化并减少服务网格带来的额外内存消耗。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Service Mesher Meetup 成都站：Service Mesh是下一代SDN吗？</title>
      <link>https://zhaohuabing.com/post/2019-10-26-what-can-service-mesh-learn-from-sdn/</link>
      <pubDate>Sat, 26 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-10-26-what-can-service-mesh-learn-from-sdn/</guid>
      <description>&lt;p&gt;如果具有通信或者网络行业的知识背景，那么你对SDN(Software Defined Network)一定不会陌生。你也许已经注意到，近来在微服务领域兴起的Service Mesh和SDN(Software Defined Network) 非常相似，这两者都采用了软件对网络进行管理和控制，也都采用了包含控制面和数据面的类似架构。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio Pilot代码深度解析</title>
      <link>https://zhaohuabing.com/post/2019-10-21-pilot-discovery-code-analysis/</link>
      <pubDate>Mon, 21 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-10-21-pilot-discovery-code-analysis/</guid>
      <description>&lt;h1 id=&#34;istio-pilot-组件介绍&#34;&gt;Istio Pilot 组件介绍&lt;/h1&gt;&#xA;&lt;p&gt;在Istio架构中，Pilot组件属于最核心的组件，负责了服务网格中的流量管理以及控制面和数据面之间的配置下发。Pilot内部的代码结构比较复杂，本文中我们将通过对Pilot的代码的深入分析来了解Pilot实现原理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enhance Istio Distributed Tracing with OpenTracing</title>
      <link>https://zhaohuabing.com/post/2019-07-02-using-opentracing-with-istio-english/</link>
      <pubDate>Wed, 11 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-07-02-using-opentracing-with-istio-english/</guid>
      <description>&lt;p&gt;In the previous post, we discussed how to use Opentracing to help Istio Service Mesh to propagate tracing context across process boundaries, and how to enrich Istio/Envoy generated traces with method-level spans to get more fine-grained insights to the services.&lt;/p&gt;&#xA;&lt;p&gt;For now, all that we have been talking is just about synchronous RPC (HTTP/REST), however, we can’t ignore the fact that asynchronous messaging is also widely adopted as an inter-services communication mechanism. So in this post, we will continue to use the eshop demo to explore how asynchronous messaging, specifically Kafka, can be traced in Istio service mesh with the help of Opentracing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enhance Istio Distributed Tracing with OpenTracing</title>
      <link>https://zhaohuabing.com/post/2019-06-22-using-opentracing-with-istio-english/</link>
      <pubDate>Sat, 24 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-06-22-using-opentracing-with-istio-english/</guid>
      <description>&lt;p&gt;While evolving towards a microservices architecture, the biggest change is that the monolith application has been divided into multiple independent processes(or services), as a result, a method call between software modules now becomes a remote procedure call go through multiple services.&lt;/p&gt;&#xA;&lt;p&gt;A client request usually goes through a couple of or even a dozen of services in a complex microservices system, which makes it really hard to figure out what’s going on when a request fails or becomes slow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>洞若观火：使用OpenTracing增强Istio的调用链跟踪</title>
      <link>https://zhaohuabing.com/post/2019-07-02-using-opentracing-with-istio/</link>
      <pubDate>Tue, 02 Jul 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-07-02-using-opentracing-with-istio/</guid>
      <description>&lt;p&gt;在上一篇文章中，我们通过一个网上商店的示例程序学习了如何使用Opentracing在Istio服务网格中传递分布式调用跟踪的上下文，以及如何将方法级的调用信息加入到Istio/Envoy生成的调用链中。采用Opentracing可以减少应用代码中传递HTTP header的重复代码；也可以根据需要在调用链中加入更细粒度的Span，以用于对系统性能瓶颈进行在线分析。&lt;/p&gt;</description>
    </item>
    <item>
      <title>开源，社区与朋友们</title>
      <link>https://zhaohuabing.com/post/2019-06-25-kubecon-cncf-oss-2019/</link>
      <pubDate>Tue, 25 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-06-25-kubecon-cncf-oss-2019/</guid>
      <description>&lt;h1 id=&#34;大会背景介绍&#34;&gt;大会背景介绍&lt;/h1&gt;&#xA;&lt;p&gt;2019年6月24-26日，KubeCon + CloudNativeCon + Open Source Summit大会在上海世博中心举行。本次大会是由CNCF的LC3和Linux基金会的OSS两个大会合并而成的，因此规模空前甚大，估计有超过40多个国家，3000多名开发者参与会议。&lt;/p&gt;</description>
    </item>
    <item>
      <title>洞若观火：使用OpenTracing增强Istio的调用链跟踪</title>
      <link>https://zhaohuabing.com/post/2019-06-22-using-opentracing-with-istio/</link>
      <pubDate>Sat, 22 Jun 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-06-22-using-opentracing-with-istio/</guid>
      <description>&lt;h1 id=&#34;分布式调用跟踪和opentracing规范&#34;&gt;分布式调用跟踪和Opentracing规范&lt;/h1&gt;&#xA;&lt;h2 id=&#34;什么是分布式调用跟踪&#34;&gt;什么是分布式调用跟踪？&lt;/h2&gt;&#xA;&lt;p&gt;相比传统的“巨石”应用，微服务的一个主要变化是将应用中的不同模块拆分为了独立的进程。在微服务架构下，原来进程内的方法调用成为了跨进程的RPC调用。相对于单一进程的方法调用，跨进程调用的调试和故障分析是非常困难的，很难用传统的调试器或者日志打印来对分布式调用进行查看和分析。&#xA;&#xA;  &lt;img src=&#34;https://zhaohuabing.com/img/2019-06-22-using-opentracing-with-istio/monolith-microserivce.jpg&#34; alt=&#34;&#34;&gt;&#xA;&#xA;&#xA;如上图所示，一个来自客户端的请求经过了多个微服务进程。如果要对该请求进行分析，则必须将该请求经过的所有服务的相关信息都收集起来并关联在一起，这就是“分布式调用跟踪”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Which One is the Right Choice for the Ingress Gateway of Your Service Mesh?</title>
      <link>https://zhaohuabing.com/post/2019-04-16-how-to-choose-ingress-for-service-mesh-english/</link>
      <pubDate>Tue, 16 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-04-16-how-to-choose-ingress-for-service-mesh-english/</guid>
      <description>&lt;p&gt;By default, in a Kubernetes cluster with the Istio service mesh enabled, services can only be accessed inside the cluster. However, some of the services may need to be exposed to external networks as well. Kubernetes and Istio provide a variety of means to get external traffic into your cluster including NodePort, LoadBalancer, Kubernetes Ingress and Istio Gateway. With all these options, which one should be the right choice for your service mesh running in production?&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何为服务网格选择入口网关？</title>
      <link>https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/</link>
      <pubDate>Fri, 29 Mar 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-03-29-how-to-choose-ingress-for-service-mesh/</guid>
      <description>&lt;p&gt;在启用了Istio服务网格的Kubernetes集群中，缺省情况下只能在集群内部访问网格中的服务，要如何才能从外部网络访问这些服务呢？ Kubernetes和Istio提供了NodePort，LoadBalancer，Kubernetes Ingress，Istio Gateway等多种外部流量入口的方式，面对这么多种方式，我们在产品部署中应该如何选择？&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 服务注册插件机制代码解析</title>
      <link>https://zhaohuabing.com/post/2019-02-18-pilot-service-registry-code-analysis/</link>
      <pubDate>Mon, 18 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-02-18-pilot-service-registry-code-analysis/</guid>
      <description>&lt;h1 id=&#34;istio服务注册插件机制&#34;&gt;Istio服务注册插件机制&lt;/h1&gt;&#xA;&lt;p&gt;在Istio架构中，Pilot组件负责维护网格中的标准服务模型，该标准服务模型独立于各种底层平台，Pilot通过适配器和各底层平台对接，以使用底层平台中的服务数据填充此标准模型。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git内部存储原理</title>
      <link>https://zhaohuabing.com/post/2019-01-21-git/</link>
      <pubDate>Mon, 21 Jan 2019 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2019-01-21-git/</guid>
      <description>&lt;p&gt;Git是程序员工作中使用频率非常高的工具，要提高日常的工作效率，就需要熟练掌握Git的使用方法。相对于传统的版本控制系统而言，Git更为强大和灵活，其各种命令和命令参数也非常多，如果不了解Git的内部原理，要把Git使用得顺手的话非常困难。本文将用一个具体的例子来帮助理解Git的内部存储原理,加深对Git的理解，从掌握各种Git命令，以在使用Git进行工作时得心应手。&lt;/p&gt;</description>
    </item>
    <item>
      <title>The obstacles to put Istio into production and how we solve them</title>
      <link>https://zhaohuabing.com/post/2018-12-27-the-obstacles-to-put-istio-into-production/</link>
      <pubDate>Thu, 27 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-12-27-the-obstacles-to-put-istio-into-production/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;B&gt;What is service mesh?&lt;/B&gt;&#xA;&lt;BR&gt;&lt;BR&gt;&#xA;Service mesh is becoming yet another fancy name in the cloud-native world this year. What exactly it is? By definition, service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud-native application. Besides, it also facilitates the governance of services.&#xA;&lt;BR&gt;&lt;BR&gt;&#xA;&lt;B&gt;What is Istio?&lt;/B&gt;&#xA;&lt;BR&gt;&lt;BR&gt;&#xA;Istio is an open-source service mesh project lead by Google, IBM and Lyft. As an open platform, Istio lets you connect, secure, control, and observe services.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Machine Learning Introduction</title>
      <link>https://zhaohuabing.com/post/2018-12-24-machine-learningp-introduction/</link>
      <pubDate>Mon, 24 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-12-24-machine-learningp-introduction/</guid>
      <description>&lt;h1 id=&#34;what-is-machine-learning&#34;&gt;What is machine learning?&lt;/h1&gt;&#xA;&lt;p&gt;Two definitions of machine learning are offered.&lt;/p&gt;&#xA;&lt;p&gt;Arthur Samuel version: &lt;BR&gt;&#xA;A field of study that gives computers the ability to &lt;em&gt;learn without being explicitly programmed&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Tom Mitchell version: &lt;BR&gt;&#xA;A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.&lt;/p&gt;&#xA;&lt;p&gt;Example: playing checkers.&lt;/p&gt;&#xA;&lt;p&gt;E = the experience of playing many games of checkers&lt;/p&gt;</description>
    </item>
    <item>
      <title>拥抱NFV，Istio 1.1 将支持多网络平面</title>
      <link>https://zhaohuabing.com/post/2018-12-19-multi-network-interfaces-for-istio/</link>
      <pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-12-19-multi-network-interfaces-for-istio/</guid>
      <description>&lt;p&gt;Istio 1.0版本只支持在单个网络，即Mesh中的服务只能连接在一个网络上。虽然在架构设计上是开放的，但从目前的代码来看，Istio的内部实现还是和Kubernetes高度集成的。由于Kubernetes集群中Pod缺省只支持一个网络接口，因此Istio也存在该限制并不让人意外。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio实战系列-Envoy Proxy构建分析</title>
      <link>https://zhaohuabing.com/post/2018-10-29-envoy-build/</link>
      <pubDate>Mon, 29 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-10-29-envoy-build/</guid>
      <description>&lt;p&gt;Istio由控制面和数据面组成。其中Envoy是Istio在数据面缺省使用的转发代理，Istio利用Envoy的四层和七层代理功能对网格中微服务之间的调用流量进行转发。今天我们来分析一下Istio 使用到的Envoy构建流程。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio微服务平台集成实践</title>
      <link>https://zhaohuabing.com/post/2018-10-18-istio-paas-integration/</link>
      <pubDate>Thu, 18 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-10-18-istio-paas-integration/</guid>
      <description>&lt;h1 id=&#34;前言&#34;&gt;前言&lt;/h1&gt;&#xA;&lt;p&gt;Istio发布1.0版本后，其服务发现和路由规则功能已基本具备production能力，我们也开始了Istio和公司内部微服务平台的集成工作，打算以Istio为基础打造一个微服务管控中心，在这里把目前的进展和遇到的坑和大家分享一下。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secure ONAP Microservices with Istio Mutual TLS Authentication and RBAC</title>
      <link>https://zhaohuabing.com/post/2018-08-15-manage-onap-with-istio-auth-enabled/</link>
      <pubDate>Wed, 15 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-08-15-manage-onap-with-istio-auth-enabled/</guid>
      <description>&lt;p&gt;In the previous post &lt;a href=&#34;https://zhaohuabing.com/post/2018-08-01-manage-onap-with-istio/&#34;&gt;Manage ONAP Microservices with Istio Service Mesh&lt;/a&gt;, we went through the steps of how to install Istio and integrate it with ONAP platform, it’s super simple and has nearly no impact to the existing projects. Now let’s enable Istio auth to secure the inter-service communication inside ONAP, it will need a little bit more efforts, but it’s worth with the benefits brought by it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage ONAP Microservices with Istio Service Mesh</title>
      <link>https://zhaohuabing.com/post/2018-08-01-manage-onap-with-istio/</link>
      <pubDate>Wed, 01 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-08-01-manage-onap-with-istio/</guid>
      <description>&lt;p&gt;In the previous post &lt;a href=&#34;https://zhaohuabing.com/post/2018-06-22-onap-with-service-mesh/&#34;&gt;How service mesh can help during the ONAP Microservice journey&lt;/a&gt;, we have discussed why the community wants ONAP to evolve towards Microservice architecture and how service mesh approach could help during the journey. Now it’s time to dip our toe in the water, let’s try out Istio with ONAP by following the below steps.&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h1 id=&#34;installation&#34;&gt;Installation&lt;/h1&gt;&#xA;&lt;p&gt;First, download installation scripts from ONAP Gerrit:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How service mesh can help during the ONAP Microservice journey</title>
      <link>https://zhaohuabing.com/post/2018-06-22-onap-with-service-mesh/</link>
      <pubDate>Fri, 22 Jun 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-06-22-onap-with-service-mesh/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.onap.org/announcement/2018/06/12/onap-announces-availability-of-beijing-release-enabling-a-deployment-ready-platform-for-network-automation-and-orchestration&#34;&gt;ONAP Beijing is available now&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;ONAP, as part of LF Networking, now accounts for more than 65% of global subscriber participation through carriers creating a harmonized, de-facto open source platform.&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;While it&amp;rsquo;s so exciting to see that more operators are deploying ONAP in their commercial network, ONAP community realizes that there are still somewhere we can improve to smooth the deployment process. For example, instead of deploying ONAP as a whole, users may just want to pick some modules, integrate these modules with their existing system to get a customized ONAP solution. Actually, this is a very usual usage scenario in open source world. So it should be easy to tailor ONAP to suit the different scenarios and purposes for various users.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio v1aplha3 routing API介绍(译文）</title>
      <link>https://zhaohuabing.com/2018/06/04/introducing-the-istio-v1alpha3-routing-api/</link>
      <pubDate>Mon, 04 Jun 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/06/04/introducing-the-istio-v1alpha3-routing-api/</guid>
      <description>&lt;p&gt;到目前为止，Istio提供了一个简单的API来进行流量管理，该API包括了四种资源：RouteRule，DestinationPolicy，EgressRule和Ingress（直接使用了Kubernets的Ingress资源）。借助此API，用户可以轻松管理Istio服务网格中的流量。该API允许用户将请求路由到特定版本的服务，为弹性测试注入延迟和失败，添加超时和断路器等等，所有这些功能都不必更改应用程序本身的代码。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bitcoin Script</title>
      <link>https://zhaohuabing.com/2018/06/03/cryptocurrency_week3_bitcoin_script/</link>
      <pubDate>Sun, 03 Jun 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/06/03/cryptocurrency_week3_bitcoin_script/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Bitcoin Script is using to transfer coins instead of just signature and public key address, which allows more flexibilities for Bitcoin transactions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-standard-transaction&#34;&gt;A Standard Transaction&lt;/h2&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s say  Alice wants to spend some coins she received from a previous transaction, this is how the procedure looks like.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Alice receives some coins from a previous transaction.  One of the outputs of that transaction specifies the public key of Alice to indicate that the coins in that output are transferred to Alice.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Actually, it&amp;rsquo;s the cryptographic hash of the public key in order to lower the risk that attacker might figure out the private key by the public key.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio 0.8 Release发布</title>
      <link>https://zhaohuabing.com/2018/06/02/istio08/</link>
      <pubDate>Sat, 02 Jun 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/06/02/istio08/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在6月1日这一天的早上，Istio社区宣布发布0.8 Release，除了常规的故障修复和性能改进外，这个儿童节礼物里面还有什么值得期待内容呢？让我们来看一看：&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Distributed Consensus</title>
      <link>https://zhaohuabing.com/2018/05/26/cryptocurrency_week2_distributed_consenus/</link>
      <pubDate>Sun, 27 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/26/cryptocurrency_week2_distributed_consenus/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Incentives and Proof of Work</title>
      <link>https://zhaohuabing.com/2018/05/26/cryptocurrency_week2_incentives_and_proof_of_work/</link>
      <pubDate>Sat, 26 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/26/cryptocurrency_week2_incentives_and_proof_of_work/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;incentive&#34;&gt;Incentive&lt;/h2&gt;&#xA;&lt;p&gt;The mechanism to motivate nodes join the Bitcoin network and create blocks.&lt;/p&gt;&#xA;&lt;h3 id=&#34;incentive-1-block-reward&#34;&gt;Incentive 1: Block Reward&lt;/h3&gt;&#xA;&lt;p&gt;Creator of block gets to&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;include special coin-creation transaction in the block&lt;/li&gt;&#xA;&lt;li&gt;choose reciptient address of this transaction (Of course, it is the miner&amp;rsquo;s address)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Explanation: Because the coin-creation transaction is just like other transaction in that block, it will only be valid if the created block ends up in the consensus chain, it&amp;rsquo;s the incentive which encourages the nodes to be honest, otherwise they can&amp;rsquo;t get their rewards.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Everything about Setting Up My Ubuntu Desktop</title>
      <link>https://zhaohuabing.com/2018/05/24/set_up_my_ubuntu_desktop/</link>
      <pubDate>Thu, 24 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/24/set_up_my_ubuntu_desktop/</guid>
      <description>&lt;h2 id=&#34;generate-ssh-key-pair&#34;&gt;Generate SSH Key Pair&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ssh-keygen -C &amp;#34;zhaohuabing@gmail.com&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;shadowsocks&#34;&gt;Shadowsocks&lt;/h2&gt;&#xA;&lt;p&gt;Install shadowsokcs&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt-get install python3-pip&#xA;&#xA;sudo pip3 install shadowsocks&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Create config at &lt;code&gt;config/shadowsocks.json&lt;/code&gt;, with the following content:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{&#xA;&#x9;&amp;#34;server&amp;#34;:&amp;#34;remote-shadowsocks-server-ip-addr&amp;#34;,&#xA;&#x9;&amp;#34;server_port&amp;#34;:443,&#xA;&#x9;&amp;#34;local_address&amp;#34;:&amp;#34;127.0.0.1&amp;#34;,&#xA;&#x9;&amp;#34;local_port&amp;#34;:1080,&#xA;&#x9;&amp;#34;password&amp;#34;:&amp;#34;your-passwd&amp;#34;,&#xA;&#x9;&amp;#34;timeout&amp;#34;:300,&#xA;&#x9;&amp;#34;method&amp;#34;:&amp;#34;aes-256-cfb&amp;#34;,&#xA;&#x9;&amp;#34;fast_open&amp;#34;:false,&#xA;&#x9;&amp;#34;workers&amp;#34;:1&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Start a local socks proxy&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo sslocal -c config/shadowsocks.json -d start&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In case there is an openssl error, modify shadowsocks source file.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo vi /usr/local/lib/python3.6/dist-packages/shadowsocks/crypto/openssl.py&#xA;&#xA;:%s/cleanup/reset/gc&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Convert shadowsocks socks proxy to http proxy&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt-get install polipo&#xA;&#xA;echo &amp;#34;socksParentProxy = localhost:1080&amp;#34; | sudo tee -a /etc/polipo/config&#xA;sudo service polipo restart&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Http proxy now is available at port 8123&lt;/p&gt;</description>
    </item>
    <item>
      <title>微服务安全沉思录之三</title>
      <link>https://zhaohuabing.com/2018/05/23/external_system_auth/</link>
      <pubDate>Wed, 23 May 2018 18:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/23/external_system_auth/</guid>
      <description>&lt;h2 id=&#34;外部系统访问控制&#34;&gt;外部系统访问控制&lt;/h2&gt;&#xA;&lt;p&gt;除用户访问和微服务之间的相互访问外，外部的第三方系统也可能需要访问系统内部的微服务。例如在上一篇博客的网上商店例子中，外部的推荐服务可能需要接入系统，以获取商店的商品目录信息。相对于内部服务之间的访问而言，外部系统的访问需要进行严格的安全控制。&lt;/p&gt;</description>
    </item>
    <item>
      <title>微服务安全沉思录之二</title>
      <link>https://zhaohuabing.com/2018/05/23/service_2_service_auth/</link>
      <pubDate>Wed, 23 May 2018 15:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/23/service_2_service_auth/</guid>
      <description>&lt;h2 id=&#34;服务间认证与鉴权&#34;&gt;服务间认证与鉴权&lt;/h2&gt;&#xA;&lt;p&gt;除来自用户的访问请求以外，微服务应用中的各个微服务相互之间还有大量的访问，包括下述场景：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用户间接触发的微服务之间的相互访问&lt;BR&gt;&#xA;例如在一个网上商店应用中，用户访问购物车微服务进行结算时，购物车微服务可能需要访问用户评级微服务获取用户的会员级别，以得到用户可以享受购物折扣。&lt;/li&gt;&#xA;&lt;li&gt;非用户触发的微服务之间的相互访问&lt;BR&gt;&#xA;例如数据同步或者后台定时任务导致的微服务之间的相互访问。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;根据应用系统的数据敏感程度的不同，对于系统内微服务的相互访问可能有不同的安全要求。&lt;/p&gt;</description>
    </item>
    <item>
      <title>微服务安全沉思录之一</title>
      <link>https://zhaohuabing.com/2018/05/22/user_authentication_authorization/</link>
      <pubDate>Wed, 23 May 2018 10:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/22/user_authentication_authorization/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;这段时间对之前微服务安全相关的一些想法进行了进一步总结和归纳，理清了在之前文章里面没有想得太清楚的地方，例如服务间的认证与鉴权以及用户身份在服务调用链中的传递。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio Sidecar自动注入原理</title>
      <link>https://zhaohuabing.com/2018/05/23/istio-auto-injection-with-webhook/</link>
      <pubDate>Wed, 23 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/23/istio-auto-injection-with-webhook/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Kubernets 1.9版本引入了Admission Webhook(web 回调)扩展机制，通过Webhook,开发者可以非常灵活地对Kubernets API Server的功能进行扩展，在API Server创建资源时对资源进行验证或者修改。&lt;/p&gt;&#xA;&lt;p&gt;使用webhook的优势是不需要对API Server的源码进行修改和重新编译就可以扩展其功能。插入的逻辑实现为一个独立的web进程，通过参数方式传入到kubernets中，由kubernets在进行自身逻辑处理时对扩展逻辑进行回调。&lt;/p&gt;&#xA;&lt;p&gt;Istio 0.7版本就利用了Kubernets webhook实现了sidecar的自动注入。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Programming Assignment: Scrooge Coin</title>
      <link>https://zhaohuabing.com/2018/05/20/cryptocurrency_week1_scroogecoin/</link>
      <pubDate>Sun, 20 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/20/cryptocurrency_week1_scroogecoin/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Finally, I got to the most exciting part of week 1 lectures-the programming assignment!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Digital Signature and Public Key as Identities</title>
      <link>https://zhaohuabing.com/2018/05/12/cryptocurrency_week1_digital_signature/</link>
      <pubDate>Tue, 15 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/12/cryptocurrency_week1_digital_signature/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Hash Pointers and Data Structures</title>
      <link>https://zhaohuabing.com/post/2018-05-12-cryptocurrency_week1_hash_pointer_and_data_structures/</link>
      <pubDate>Sat, 12 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-05-12-cryptocurrency_week1_hash_pointer_and_data_structures/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;hash-pointer&#34;&gt;Hash Pointer&lt;/h2&gt;&#xA;&lt;p&gt;Hash Pointer is comprised of two parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pointer to where some information is stored&lt;/li&gt;&#xA;&lt;li&gt;Cryptographic hash of that information&#xA;The pointer can be used to get the information, the hash can be used to verify that information hasn&amp;rsquo;t been changed&#xA;&#xA;  &lt;img src=&#34;https://zhaohuabing.com/img//2018-05-12-cryptocurrency_week1_hash_pointer_and_data_structures/hashpointet.png&#34; alt=&#34;hashpointer&#34;&gt;&#xA;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Cryptographic Hash Function</title>
      <link>https://zhaohuabing.com/2018/05/07/cryptocurrency_week1_cryptographic_hash_function/</link>
      <pubDate>Wed, 09 May 2018 22:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/07/cryptocurrency_week1_cryptographic_hash_function/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;hash-function&#34;&gt;Hash Function&lt;/h2&gt;&#xA;&lt;p&gt;Hash function is a mathematical function:&lt;em&gt;H(X)=Y&lt;/em&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;H:  A hash function which takes an input value and calculates an output value&lt;/li&gt;&#xA;&lt;li&gt;X: Input of the hash function, it could be any data of any length&lt;/li&gt;&#xA;&lt;li&gt;Y: Output of the hash function: a fix-size bit(, it can be 256, 384, 516 &amp;hellip;, Bitcoin uses 256)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Introduction to crypto and cryptocurrencies</title>
      <link>https://zhaohuabing.com/2018/05/06/cryptocurrency_week1/</link>
      <pubDate>Sun, 06 May 2018 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/05/06/cryptocurrency_week1/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This series of articles are my notes of &amp;ldquo;Bitcoin and Cryptocurrency Technologies&amp;rdquo; online course.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;how-did-i-get-into-this&#34;&gt;How did I get into this?&lt;/h2&gt;&#xA;&lt;p&gt;I have noticed the buzzwords “Bitcoin” and “Blockchain” for a while. There are lots of articles, news, and talks around them. It seems that many people believe that cryptocurrency is the future of online payment, some even claim that blockchain would become the fundamental technology of the next generation of the Internet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Helm介绍</title>
      <link>https://zhaohuabing.com/2018/04/16/using-helm-to-deploy-to-kubernetes/</link>
      <pubDate>Mon, 16 Apr 2018 15:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/04/16/using-helm-to-deploy-to-kubernetes/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Helm是Kubernetes生态系统中的一个软件包管理工具。本文将介绍为何要使用Helm进行Kubernetes软件包管理，澄清Helm中使用到的相关概念，并通过一个具体的示例学习如何使用Helm打包，分发，安装，升级及回退Kubernetes应用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Service Mesh 和 API Gateway的关系探讨（译文）</title>
      <link>https://zhaohuabing.com/2018/04/11/service-mesh-vs-api-gateway/</link>
      <pubDate>Wed, 11 Apr 2018 09:32:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/04/11/service-mesh-vs-api-gateway/</guid>
      <description>&lt;h2 id=&#34;service-mesh-vs-api-gateway&#34;&gt;Service Mesh vs API Gateway&lt;/h2&gt;&#xA;&lt;p&gt;在&lt;a href=&#34;https://medium.com/microservices-in-practice/service-mesh-for-microservices-2953109a3c9a&#34;&gt;前一篇关于Service Mesh的文章&lt;/a&gt;中,我提到了几个关于Service Mesh和API Gateway之间关系的问题，在本篇文章中，我打算就Service Mesh和API Gateway的用途进行进一步讨论。&lt;/p&gt;</description>
    </item>
    <item>
      <title>谈谈微服务架构中的基础设施：Service Mesh与Istio</title>
      <link>https://zhaohuabing.com/2018/03/29/what-is-service-mesh-and-istio/</link>
      <pubDate>Thu, 29 Mar 2018 12:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/03/29/what-is-service-mesh-and-istio/</guid>
      <description>&lt;h2 id=&#34;微服务架构的演进&#34;&gt;微服务架构的演进&lt;/h2&gt;&#xA;&lt;p&gt;作为一种架构模式，微服务将复杂系统切分为数十乃至上百个小服务，每个服务负责实现一个独立的业务逻辑。这些小服务易于被小型的软件工程师团队所理解和修改，并带来了语言和框架选择灵活性，缩短应用开发上线时间，可根据不同的工作负载和资源要求对服务进行独立缩扩容等优势。&lt;/p&gt;&#xA;&lt;p&gt;另一方面，当应用被拆分为多个微服务进程后，进程内的方法调用变成了了进程间的远程调用。引入了对大量服务的连接、管理和监控的复杂性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何配置docker使用HTTP代理</title>
      <link>https://zhaohuabing.com/2018/03/13/use-docker-behind-http-proxy/</link>
      <pubDate>Tue, 13 Mar 2018 18:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/03/13/use-docker-behind-http-proxy/</guid>
      <description>&lt;h2 id=&#34;ubuntu&#34;&gt;Ubuntu&lt;/h2&gt;&#xA;&lt;h3 id=&#34;设置docker使用http-proxy&#34;&gt;设置docker使用http proxy&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo /etc/default/docker&#xA;&#xA;export http_proxy=&amp;#34;http://127.0.0.1:3128/&amp;#34;&#xA;export https_proxy=&amp;#34;http://127.0.0.1:3128/&amp;#34;&#xA;export HTTP_PROXY=&amp;#34;http://127.0.0.1:3128/&amp;#34;&#xA;export HTTPS_PROXY=&amp;#34;http://127.0.0.1:3128/&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Vim Tips</title>
      <link>https://zhaohuabing.com/2018/02/09/vim-tips/</link>
      <pubDate>Fri, 09 Feb 2018 11:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/02/09/vim-tips/</guid>
      <description>&lt;h2 id=&#34;vim-graphical-cheat-sheet&#34;&gt;vim graphical cheat sheet&lt;/h2&gt;&#xA;&lt;p&gt;&#xA;  &lt;img src=&#34;https://zhaohuabing.com/img/2018-02-09-vim-tips/vi-vim-cheat-sheet.svg&#34; alt=&#34;&#34;&gt;&#xA;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker Tips</title>
      <link>https://zhaohuabing.com/post/2018-02-09-docker-without-sudo/</link>
      <pubDate>Fri, 09 Feb 2018 10:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/post/2018-02-09-docker-without-sudo/</guid>
      <description>&lt;h1 id=&#34;allow-none-root-users&#34;&gt;Allow none-root users&lt;/h1&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo groupadd docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo gpasswd -a &lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;$USER&lt;/span&gt; docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;newgrp docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;solve-no-space-left-on-device&#34;&gt;Solve &amp;ldquo;no space left on device&amp;rdquo;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;ubuntu&#34;&gt;ubuntu&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo vi /etc/docker/daemon.json&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-josn&#34; data-lang=&#34;josn&#34;&gt;{&#xA;        &amp;#34;storage-driver&amp;#34;: &amp;#34;devicemapper&amp;#34;,&#xA;        &amp;#34;storage-opts&amp;#34;: [&#xA;                &amp;#34;dm.basesize=40G&amp;#34;&#xA;        ]&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;mac&#34;&gt;Mac&lt;/h2&gt;&#xA;&lt;p&gt;Docker -&amp;gt; settings -&amp;gt; Resources -&amp;gt; Disk Image Size&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何构建安全的微服务应用？</title>
      <link>https://zhaohuabing.com/2018/02/03/authentication-and-authorization-of-microservice/</link>
      <pubDate>Sat, 03 Feb 2018 12:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/02/03/authentication-and-authorization-of-microservice/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;微服务架构的引入为软件应用带来了诸多好处：包括小开发团队，缩短开发周期，语言选择灵活性，增强服务伸缩能力等。与此同时，也引入了分布式系统的诸多复杂问题。其中一个挑战就是如何在微服务架构中实现一个灵活，安全，高效的认证和鉴权方案。本文将尝试就此问题进行一次比较完整的探讨。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx开源Service Mesh组件Nginmesh安装指南</title>
      <link>https://zhaohuabing.com/2018/01/02/nginmesh-install/</link>
      <pubDate>Tue, 02 Jan 2018 12:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2018/01/02/nginmesh-install/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;Nginmesh是NGINX的Service Mesh开源项目，用于Istio服务网格平台中的数据面代理。它旨在提供七层负载均衡和服务路由功能，与Istio集成作为sidecar部署，并将以“标准，可靠和安全的方式”使得服务间通信更容易。Nginmesh在今年底已经连续发布了0.2和0.3版本，提供了服务发现，请求转发，路由规则，性能指标收集等功能。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何从外部访问Kubernetes集群中的应用？</title>
      <link>https://zhaohuabing.com/2017/11/28/access-application-from-outside/</link>
      <pubDate>Tue, 28 Nov 2017 12:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2017/11/28/access-application-from-outside/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;我们知道，kubernetes的Cluster Network属于私有网络，只能在cluster Network内部才能访问部署的应用，那如何才能将Kubernetes集群中的应用暴露到外部网络，为外部用户提供服务呢？本文探讨了从外部网络访问kubernetes cluster中应用的几种实现方式。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用脚本和定时任务自动设置windows HTTP 代理服务器</title>
      <link>https://zhaohuabing.com/2017/11/23/windows-proxy-scripts/</link>
      <pubDate>Thu, 23 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2017/11/23/windows-proxy-scripts/</guid>
      <description>&lt;h2 id=&#34;问题&#34;&gt;问题&lt;/h2&gt;&#xA;&lt;p&gt;我非常愿意在日程使用的工作工具上进行投资，好的工具可以提升效率，因为工具的问题导致思维中断非常让人沮丧。我在办公室使用一台ThinkPad笔记本，笔记本是公司发的，我自己花钱升级了SSD，内存，安装的是Win10，秒级启动，安装vagrant和virtualbox后，用Linux虚机进行开发也很顺手。但一个小代理服务器设置的小问题却影响了我使用笔记本处理事务的体验。&lt;/p&gt;</description>
    </item>
    <item>
      <title>采用Istio实现灰度发布(金丝雀发布)</title>
      <link>https://zhaohuabing.com/2017/11/08/istio-canary-release/</link>
      <pubDate>Wed, 08 Nov 2017 15:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2017/11/08/istio-canary-release/</guid>
      <description>&lt;h2 id=&#34;灰度发布又名金丝雀发布介绍&#34;&gt;灰度发布（又名金丝雀发布）介绍&lt;/h2&gt;&#xA;&lt;p&gt;当应用上线以后，运维面临的一大挑战是如何能够在不影响已上线业务的情况下进行升级。做过产品的同学都清楚，不管在发布前做过多么完备的自动化和人工测试，在发布后都会出现或多或少的故障。根据墨菲定律，可能会出错的版本发布一定会出错。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用Istio实现应用流量转移</title>
      <link>https://zhaohuabing.com/2017/11/07/istio-traffic-shifting/</link>
      <pubDate>Tue, 07 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2017/11/07/istio-traffic-shifting/</guid>
      <description>&lt;p&gt;关于Istio的更多内容请参考&lt;a href=&#34;http://istio.doczh.cn/&#34;&gt;istio中文文档&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;原文参见&lt;a href=&#34;https://istio.io/docs/tasks/traffic-management/traffic-shifting.html&#34;&gt;Traffic Shifting&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;本任务将演示如何将应用流量逐渐从旧版本的服务迁移到新版本。通过Istio，可以使用一系列不同权重的规则（10%，20%，··· 100%）将流量平缓地从旧版本服务迁移到新版本服务。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Istio及Bookinfo示例程序安装试用笔记</title>
      <link>https://zhaohuabing.com/2017/11/04/istio-install_and_example/</link>
      <pubDate>Sat, 04 Nov 2017 12:00:00 +0000</pubDate>
      <guid>https://zhaohuabing.com/2017/11/04/istio-install_and_example/</guid>
      <description>&lt;h2 id=&#34;服务网格简介&#34;&gt;服务网格简介&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;服务网格&lt;/strong&gt;（Service Mesh）是为解决微服务的通信和治理而出现的一种&lt;strong&gt;架构模式&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;服务网格将服务间通讯以及与此相关的管理控制功能从业务程序中下移到一个基础设施层，从而彻底隔离了业务逻辑和服务通讯两个关注点。采用服务网格后，应用开发者只需要关注并实现应用业务逻辑。服务之间的通信，包括服务发现，通讯的可靠性，通讯的安全性，服务路由等由服务网格层进行处理，并对应用程序透明。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
