yzeng25 commented on code in PR #1500:
URL: https://github.com/apache/apisix-website/pull/1500#discussion_r1100013299


##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。
+
+[Apache APISIX Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) 是一款以 [Apache 
APISIX](http://apisix.apache.org/) 作为数据面的 [Kubernetes Ingress 
Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
 开源工具,目前已经更新到 
[v1.3](https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#130)
 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
+
+长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 
资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 
对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。
+
+[Cert Manager](https://cert-manager.io/docs/) 是一款致力于在 Kubernetes 
平台上简化证书管理的软件,它支持对接许多不同的证书源,如 [Let's Encrypt](https://letsencrypt.org/) 和 
[HashiCorp Vault](https://www.vaultproject.io/)。
+
+如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 
将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。
+
+## 步骤一:环境准备
+
+如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:
+
+1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 [Kind](https://kind.sigs.k8s.io/) 和 
[Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/)
+2. 安装 [kubectl](https://kubernetes.io/docs/tutorials/hello-minikube/)
+3. 安装 [Helm v3](https://helm.sh/)
+
+>请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create namespace 
ingress-apisix`

Review Comment:
   ```suggestion
   > 请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create 
namespace ingress-apisix`
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。

Review Comment:
   He's a PMC.
   ```suggestion
   > 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
PMC。
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。
+
+[Apache APISIX Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) 是一款以 [Apache 
APISIX](http://apisix.apache.org/) 作为数据面的 [Kubernetes Ingress 
Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
 开源工具,目前已经更新到 
[v1.3](https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#130)
 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
+
+长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 
资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 
对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。
+
+[Cert Manager](https://cert-manager.io/docs/) 是一款致力于在 Kubernetes 
平台上简化证书管理的软件,它支持对接许多不同的证书源,如 [Let's Encrypt](https://letsencrypt.org/) 和 
[HashiCorp Vault](https://www.vaultproject.io/)。
+
+如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 
将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。
+
+## 步骤一:环境准备
+
+如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:
+
+1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 [Kind](https://kind.sigs.k8s.io/) 和 
[Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/)
+2. 安装 [kubectl](https://kubernetes.io/docs/tutorials/hello-minikube/)
+3. 安装 [Helm v3](https://helm.sh/)
+
+>请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create namespace 
ingress-apisix`
+
+## 步骤二:安装 Apache APISIX Ingress Controller
+
+我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 
集群。
+
+```bash
+helm repo add apisix https://charts.apiseven.com
+helm repo update
+helm install apisix apisix/apisix --set gateway.tls.enabled=true --set 
ingress-controller.enabled=true --namespace ingress-apisix
+```
+
+点击查看[详细安装介绍](https://github.com/apache/apisix-helm-chart/blob/master/charts/apisix/README.md)。
+
+## 步骤三:安装 Cert Manager
+
+通过 Helm 来安装 Cert 
Manager,点击可查看[详细安装介绍](https://cert-manager.io/docs/installation/)。
+
+```bash
+helm install cert-manager jetstack/cert-manager --namespace ingress-apisix  
--set prometheus.enabled=false --set installCRDs=true
+```
+
+安装完毕后请等待一会后查看组件的运行状态,确保所有组件都已正常运行,你可以通过如下命令进行查看。
+
+```bash
+kubectl get all -n ingress-apisix
+```
+
+返回结果如下所示,表示所有组件都已正常运行。
+
+```bash
+NAME                                             READY   STATUS        
RESTARTS   AGE
+pod/apisix-5d99956d88-j68sj                      1/1     Running       0       
   63s
+pod/apisix-69459554d4-btnwn                      0/1     Terminating   0       
   57m
+pod/apisix-etcd-0                                1/1     Running       0       
   57m
+pod/apisix-etcd-1                                1/1     Running       0       
   57m
+pod/apisix-etcd-2                                0/1     Running       0       
   50s
+pod/apisix-ingress-controller-7b5c767cc7-j62hb   1/1     Running       0       
   55m
+pod/cert-manager-5ffd4f6c89-q9f7m                1/1     Running       0       
   45m
+pod/cert-manager-cainjector-748dc889c5-nrvkh     1/1     Running       0       
   45m
+pod/cert-manager-startupapicheck-kmgxf           0/1     Completed     0       
   45m
+pod/cert-manager-webhook-bc964d98b-mkjj7         1/1     Running       0       
   45m
+
+NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   
PORT(S)                      AGE
+service/apisix-admin                ClusterIP   10.96.16.25     <none>        
9180/TCP                     57m
+service/apisix-etcd                 ClusterIP   10.96.232.251   <none>        
2379/TCP,2380/TCP            57m
+service/apisix-etcd-headless        ClusterIP   None            <none>        
2379/TCP,2380/TCP            57m
+service/apisix-gateway              NodePort    10.96.118.75    <none>        
80:32039/TCP,443:30107/TCP   57m
+service/apisix-ingress-controller   ClusterIP   10.96.13.76     <none>        
80/TCP                       57m
+service/cert-manager-webhook        ClusterIP   10.96.182.188   <none>        
443/TCP                      45m
+
+NAME                                        READY   UP-TO-DATE   AVAILABLE   
AGE
+deployment.apps/apisix                      1/1     1            1           
57m
+deployment.apps/apisix-ingress-controller   1/1     1            1           
57m
+deployment.apps/cert-manager                1/1     1            1           
45m
+deployment.apps/cert-manager-cainjector     1/1     1            1           
45m
+deployment.apps/cert-manager-webhook        1/1     1            1           
45m
+
+NAME                                                   DESIRED   CURRENT   
READY   AGE
+replicaset.apps/apisix-5d99956d88                      1         1         1   
    63s
+replicaset.apps/apisix-69459554d4                      0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-74c6b5fbdd   0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-7b5c767cc7   1         1         1   
    55m
+replicaset.apps/apisix-ingress-controller-7d58db957c   0         0         0   
    55m
+replicaset.apps/cert-manager-5ffd4f6c89                1         1         1   
    45m
+replicaset.apps/cert-manager-cainjector-748dc889c5     1         1         1   
    45m
+replicaset.apps/cert-manager-webhook-bc964d98b         1         1         1   
    45m
+
+NAME                           READY   AGE
+statefulset.apps/apisix-etcd   2/3     57m
+
+NAME                                     COMPLETIONS   DURATION   AGE
+job.batch/cert-manager-startupapicheck   1/1           6m24s      45m
+```
+
+>[Kubernetes Controller 
Manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 的机制决定了 Pod 名称会有所不同。

Review Comment:
   ```suggestion
   > [Kubernetes Controller 
Manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 的机制决定了 Pod 名称会有所不同。
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。
+
+[Apache APISIX Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) 是一款以 [Apache 
APISIX](http://apisix.apache.org/) 作为数据面的 [Kubernetes Ingress 
Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
 开源工具,目前已经更新到 
[v1.3](https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#130)
 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
+
+长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 
资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 
对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。
+
+[Cert Manager](https://cert-manager.io/docs/) 是一款致力于在 Kubernetes 
平台上简化证书管理的软件,它支持对接许多不同的证书源,如 [Let's Encrypt](https://letsencrypt.org/) 和 
[HashiCorp Vault](https://www.vaultproject.io/)。
+
+如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 
将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。
+
+## 步骤一:环境准备
+
+如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:
+
+1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 [Kind](https://kind.sigs.k8s.io/) 和 
[Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/)
+2. 安装 [kubectl](https://kubernetes.io/docs/tutorials/hello-minikube/)
+3. 安装 [Helm v3](https://helm.sh/)
+
+>请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create namespace 
ingress-apisix`
+
+## 步骤二:安装 Apache APISIX Ingress Controller
+
+我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 
集群。
+
+```bash
+helm repo add apisix https://charts.apiseven.com
+helm repo update
+helm install apisix apisix/apisix --set gateway.tls.enabled=true --set 
ingress-controller.enabled=true --namespace ingress-apisix
+```
+
+点击查看[详细安装介绍](https://github.com/apache/apisix-helm-chart/blob/master/charts/apisix/README.md)。
+
+## 步骤三:安装 Cert Manager
+
+通过 Helm 来安装 Cert 
Manager,点击可查看[详细安装介绍](https://cert-manager.io/docs/installation/)。
+
+```bash
+helm install cert-manager jetstack/cert-manager --namespace ingress-apisix  
--set prometheus.enabled=false --set installCRDs=true
+```
+
+安装完毕后请等待一会后查看组件的运行状态,确保所有组件都已正常运行,你可以通过如下命令进行查看。
+
+```bash
+kubectl get all -n ingress-apisix
+```
+
+返回结果如下所示,表示所有组件都已正常运行。
+
+```bash
+NAME                                             READY   STATUS        
RESTARTS   AGE
+pod/apisix-5d99956d88-j68sj                      1/1     Running       0       
   63s
+pod/apisix-69459554d4-btnwn                      0/1     Terminating   0       
   57m
+pod/apisix-etcd-0                                1/1     Running       0       
   57m
+pod/apisix-etcd-1                                1/1     Running       0       
   57m
+pod/apisix-etcd-2                                0/1     Running       0       
   50s
+pod/apisix-ingress-controller-7b5c767cc7-j62hb   1/1     Running       0       
   55m
+pod/cert-manager-5ffd4f6c89-q9f7m                1/1     Running       0       
   45m
+pod/cert-manager-cainjector-748dc889c5-nrvkh     1/1     Running       0       
   45m
+pod/cert-manager-startupapicheck-kmgxf           0/1     Completed     0       
   45m
+pod/cert-manager-webhook-bc964d98b-mkjj7         1/1     Running       0       
   45m
+
+NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   
PORT(S)                      AGE
+service/apisix-admin                ClusterIP   10.96.16.25     <none>        
9180/TCP                     57m
+service/apisix-etcd                 ClusterIP   10.96.232.251   <none>        
2379/TCP,2380/TCP            57m
+service/apisix-etcd-headless        ClusterIP   None            <none>        
2379/TCP,2380/TCP            57m
+service/apisix-gateway              NodePort    10.96.118.75    <none>        
80:32039/TCP,443:30107/TCP   57m
+service/apisix-ingress-controller   ClusterIP   10.96.13.76     <none>        
80/TCP                       57m
+service/cert-manager-webhook        ClusterIP   10.96.182.188   <none>        
443/TCP                      45m
+
+NAME                                        READY   UP-TO-DATE   AVAILABLE   
AGE
+deployment.apps/apisix                      1/1     1            1           
57m
+deployment.apps/apisix-ingress-controller   1/1     1            1           
57m
+deployment.apps/cert-manager                1/1     1            1           
45m
+deployment.apps/cert-manager-cainjector     1/1     1            1           
45m
+deployment.apps/cert-manager-webhook        1/1     1            1           
45m
+
+NAME                                                   DESIRED   CURRENT   
READY   AGE
+replicaset.apps/apisix-5d99956d88                      1         1         1   
    63s
+replicaset.apps/apisix-69459554d4                      0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-74c6b5fbdd   0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-7b5c767cc7   1         1         1   
    55m
+replicaset.apps/apisix-ingress-controller-7d58db957c   0         0         0   
    55m
+replicaset.apps/cert-manager-5ffd4f6c89                1         1         1   
    45m
+replicaset.apps/cert-manager-cainjector-748dc889c5     1         1         1   
    45m
+replicaset.apps/cert-manager-webhook-bc964d98b         1         1         1   
    45m
+
+NAME                           READY   AGE
+statefulset.apps/apisix-etcd   2/3     57m
+
+NAME                                     COMPLETIONS   DURATION   AGE
+job.batch/cert-manager-startupapicheck   1/1           6m24s      45m
+```
+
+>[Kubernetes Controller 
Manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 的机制决定了 Pod 名称会有所不同。
+
+## 步骤四:申请证书并测试
+
+首先我们需要配置证书颁发对象。
+
+```yaml
+# issuer.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+  name: issuer
+  namespace: ingress-apisix
+spec:
+  selfSigned: {}
+```
+
+并创建自签名证书颁发者。
+
+```bash
+kubectl apply -f issuer.yaml
+```
+
+>请注意,自签名颁发对象不推荐使用在生产环境中!更多证书颁发对象的配置请参考[这里](https://cert-manager.io/docs/configuration/)。
+然后为域名 `httpbin.org` 创建一张证书。

Review Comment:
   ```suggestion
   
   然后为域名 `httpbin.org` 创建一张证书。
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。

Review Comment:
   The quote shows up properly, but the markdown syntax says always add a space 
between `>`and quoted texts, see 
   https://www.markdownguide.org/basic-syntax/#nested-blockquotes.
    



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。
+
+[Apache APISIX Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) 是一款以 [Apache 
APISIX](http://apisix.apache.org/) 作为数据面的 [Kubernetes Ingress 
Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
 开源工具,目前已经更新到 
[v1.3](https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#130)
 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
+
+长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 
资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 
对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。
+
+[Cert Manager](https://cert-manager.io/docs/) 是一款致力于在 Kubernetes 
平台上简化证书管理的软件,它支持对接许多不同的证书源,如 [Let's Encrypt](https://letsencrypt.org/) 和 
[HashiCorp Vault](https://www.vaultproject.io/)。
+
+如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 
将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。
+
+## 步骤一:环境准备
+
+如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:
+
+1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 [Kind](https://kind.sigs.k8s.io/) 和 
[Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/)
+2. 安装 [kubectl](https://kubernetes.io/docs/tutorials/hello-minikube/)
+3. 安装 [Helm v3](https://helm.sh/)
+
+>请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create namespace 
ingress-apisix`
+
+## 步骤二:安装 Apache APISIX Ingress Controller
+
+我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 
集群。
+
+```bash
+helm repo add apisix https://charts.apiseven.com
+helm repo update
+helm install apisix apisix/apisix --set gateway.tls.enabled=true --set 
ingress-controller.enabled=true --namespace ingress-apisix
+```
+
+点击查看[详细安装介绍](https://github.com/apache/apisix-helm-chart/blob/master/charts/apisix/README.md)。
+
+## 步骤三:安装 Cert Manager
+
+通过 Helm 来安装 Cert 
Manager,点击可查看[详细安装介绍](https://cert-manager.io/docs/installation/)。
+
+```bash
+helm install cert-manager jetstack/cert-manager --namespace ingress-apisix  
--set prometheus.enabled=false --set installCRDs=true
+```
+
+安装完毕后请等待一会后查看组件的运行状态,确保所有组件都已正常运行,你可以通过如下命令进行查看。
+
+```bash
+kubectl get all -n ingress-apisix
+```
+
+返回结果如下所示,表示所有组件都已正常运行。
+
+```bash
+NAME                                             READY   STATUS        
RESTARTS   AGE
+pod/apisix-5d99956d88-j68sj                      1/1     Running       0       
   63s
+pod/apisix-69459554d4-btnwn                      0/1     Terminating   0       
   57m
+pod/apisix-etcd-0                                1/1     Running       0       
   57m
+pod/apisix-etcd-1                                1/1     Running       0       
   57m
+pod/apisix-etcd-2                                0/1     Running       0       
   50s
+pod/apisix-ingress-controller-7b5c767cc7-j62hb   1/1     Running       0       
   55m
+pod/cert-manager-5ffd4f6c89-q9f7m                1/1     Running       0       
   45m
+pod/cert-manager-cainjector-748dc889c5-nrvkh     1/1     Running       0       
   45m
+pod/cert-manager-startupapicheck-kmgxf           0/1     Completed     0       
   45m
+pod/cert-manager-webhook-bc964d98b-mkjj7         1/1     Running       0       
   45m
+
+NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   
PORT(S)                      AGE
+service/apisix-admin                ClusterIP   10.96.16.25     <none>        
9180/TCP                     57m
+service/apisix-etcd                 ClusterIP   10.96.232.251   <none>        
2379/TCP,2380/TCP            57m
+service/apisix-etcd-headless        ClusterIP   None            <none>        
2379/TCP,2380/TCP            57m
+service/apisix-gateway              NodePort    10.96.118.75    <none>        
80:32039/TCP,443:30107/TCP   57m
+service/apisix-ingress-controller   ClusterIP   10.96.13.76     <none>        
80/TCP                       57m
+service/cert-manager-webhook        ClusterIP   10.96.182.188   <none>        
443/TCP                      45m
+
+NAME                                        READY   UP-TO-DATE   AVAILABLE   
AGE
+deployment.apps/apisix                      1/1     1            1           
57m
+deployment.apps/apisix-ingress-controller   1/1     1            1           
57m
+deployment.apps/cert-manager                1/1     1            1           
45m
+deployment.apps/cert-manager-cainjector     1/1     1            1           
45m
+deployment.apps/cert-manager-webhook        1/1     1            1           
45m
+
+NAME                                                   DESIRED   CURRENT   
READY   AGE
+replicaset.apps/apisix-5d99956d88                      1         1         1   
    63s
+replicaset.apps/apisix-69459554d4                      0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-74c6b5fbdd   0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-7b5c767cc7   1         1         1   
    55m
+replicaset.apps/apisix-ingress-controller-7d58db957c   0         0         0   
    55m
+replicaset.apps/cert-manager-5ffd4f6c89                1         1         1   
    45m
+replicaset.apps/cert-manager-cainjector-748dc889c5     1         1         1   
    45m
+replicaset.apps/cert-manager-webhook-bc964d98b         1         1         1   
    45m
+
+NAME                           READY   AGE
+statefulset.apps/apisix-etcd   2/3     57m
+
+NAME                                     COMPLETIONS   DURATION   AGE
+job.batch/cert-manager-startupapicheck   1/1           6m24s      45m
+```
+
+>[Kubernetes Controller 
Manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 的机制决定了 Pod 名称会有所不同。
+
+## 步骤四:申请证书并测试
+
+首先我们需要配置证书颁发对象。
+
+```yaml
+# issuer.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+  name: issuer
+  namespace: ingress-apisix
+spec:
+  selfSigned: {}
+```
+
+并创建自签名证书颁发者。
+
+```bash
+kubectl apply -f issuer.yaml
+```
+
+>请注意,自签名颁发对象不推荐使用在生产环境中!更多证书颁发对象的配置请参考[这里](https://cert-manager.io/docs/configuration/)。

Review Comment:
   ```suggestion
   > 
请注意,自签名颁发对象不推荐使用在生产环境中!更多证书颁发对象的配置请参考[这里](https://cert-manager.io/docs/configuration/)。
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。

Review Comment:
   ```suggestion
   > Cert Manager 解决了 Kubernetes 中证书的默认存储方式的痛点,并逐步成为了 Kubernetes 
生态中证书签发和管理领域中的事实标准。
   ```



##########
blog/zh/blog/2023/02/07/apisix-ingress-with-cert-mamager.md:
##########
@@ -0,0 +1,261 @@
+---
+title: "APISIX Ingress 如何使用 Cert Manager 管理证书"
+authors:
+  - name: "张晋涛"
+    title: "Author"
+    url: "https://github.com/tao12345666333";
+    image_url: "https://github.com/tao12345666333.png";
+keywords:
+- Ingress Controller
+- 云原生
+- APISIX
+- 证书管理
+- Vault
+- cert manager
+description: 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 
的出现比较好的解决了这些问题,逐步成为了 Kubernetes 生态中证书签发/管理领域中的事实标准。
+tags: [Ecosystem]
+---
+
+> 本文中介绍了 Kubernetes 中证书的默认存储方式,以及这种方式存在的一些痛点。cert-manager 的出现比较好的解决了这些问题,逐步成为了 
Kubernetes 生态中证书签发/管理领域中的事实标准。
+
+<!--truncate-->
+
+> 作者[张晋涛](https://github.com/tao12345666333),API7.ai 云原生工程师,Apache APISIX 
Committer。
+
+[Apache APISIX Ingress 
Controller](https://github.com/apache/apisix-ingress-controller) 是一款以 [Apache 
APISIX](http://apisix.apache.org/) 作为数据面的 [Kubernetes Ingress 
Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
 开源工具,目前已经更新到 
[v1.3](https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#130)
 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。
+
+长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 
资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 
对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。
+
+[Cert Manager](https://cert-manager.io/docs/) 是一款致力于在 Kubernetes 
平台上简化证书管理的软件,它支持对接许多不同的证书源,如 [Let's Encrypt](https://letsencrypt.org/) 和 
[HashiCorp Vault](https://www.vaultproject.io/)。
+
+如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 
将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。
+
+## 步骤一:环境准备
+
+如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:
+
+1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 [Kind](https://kind.sigs.k8s.io/) 和 
[Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/)
+2. 安装 [kubectl](https://kubernetes.io/docs/tutorials/hello-minikube/)
+3. 安装 [Helm v3](https://helm.sh/)
+
+>请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:`kubectl create namespace 
ingress-apisix`
+
+## 步骤二:安装 Apache APISIX Ingress Controller
+
+我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 
集群。
+
+```bash
+helm repo add apisix https://charts.apiseven.com
+helm repo update
+helm install apisix apisix/apisix --set gateway.tls.enabled=true --set 
ingress-controller.enabled=true --namespace ingress-apisix
+```
+
+点击查看[详细安装介绍](https://github.com/apache/apisix-helm-chart/blob/master/charts/apisix/README.md)。
+
+## 步骤三:安装 Cert Manager
+
+通过 Helm 来安装 Cert 
Manager,点击可查看[详细安装介绍](https://cert-manager.io/docs/installation/)。
+
+```bash
+helm install cert-manager jetstack/cert-manager --namespace ingress-apisix  
--set prometheus.enabled=false --set installCRDs=true
+```
+
+安装完毕后请等待一会后查看组件的运行状态,确保所有组件都已正常运行,你可以通过如下命令进行查看。
+
+```bash
+kubectl get all -n ingress-apisix
+```
+
+返回结果如下所示,表示所有组件都已正常运行。
+
+```bash
+NAME                                             READY   STATUS        
RESTARTS   AGE
+pod/apisix-5d99956d88-j68sj                      1/1     Running       0       
   63s
+pod/apisix-69459554d4-btnwn                      0/1     Terminating   0       
   57m
+pod/apisix-etcd-0                                1/1     Running       0       
   57m
+pod/apisix-etcd-1                                1/1     Running       0       
   57m
+pod/apisix-etcd-2                                0/1     Running       0       
   50s
+pod/apisix-ingress-controller-7b5c767cc7-j62hb   1/1     Running       0       
   55m
+pod/cert-manager-5ffd4f6c89-q9f7m                1/1     Running       0       
   45m
+pod/cert-manager-cainjector-748dc889c5-nrvkh     1/1     Running       0       
   45m
+pod/cert-manager-startupapicheck-kmgxf           0/1     Completed     0       
   45m
+pod/cert-manager-webhook-bc964d98b-mkjj7         1/1     Running       0       
   45m
+
+NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   
PORT(S)                      AGE
+service/apisix-admin                ClusterIP   10.96.16.25     <none>        
9180/TCP                     57m
+service/apisix-etcd                 ClusterIP   10.96.232.251   <none>        
2379/TCP,2380/TCP            57m
+service/apisix-etcd-headless        ClusterIP   None            <none>        
2379/TCP,2380/TCP            57m
+service/apisix-gateway              NodePort    10.96.118.75    <none>        
80:32039/TCP,443:30107/TCP   57m
+service/apisix-ingress-controller   ClusterIP   10.96.13.76     <none>        
80/TCP                       57m
+service/cert-manager-webhook        ClusterIP   10.96.182.188   <none>        
443/TCP                      45m
+
+NAME                                        READY   UP-TO-DATE   AVAILABLE   
AGE
+deployment.apps/apisix                      1/1     1            1           
57m
+deployment.apps/apisix-ingress-controller   1/1     1            1           
57m
+deployment.apps/cert-manager                1/1     1            1           
45m
+deployment.apps/cert-manager-cainjector     1/1     1            1           
45m
+deployment.apps/cert-manager-webhook        1/1     1            1           
45m
+
+NAME                                                   DESIRED   CURRENT   
READY   AGE
+replicaset.apps/apisix-5d99956d88                      1         1         1   
    63s
+replicaset.apps/apisix-69459554d4                      0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-74c6b5fbdd   0         0         0   
    57m
+replicaset.apps/apisix-ingress-controller-7b5c767cc7   1         1         1   
    55m
+replicaset.apps/apisix-ingress-controller-7d58db957c   0         0         0   
    55m
+replicaset.apps/cert-manager-5ffd4f6c89                1         1         1   
    45m
+replicaset.apps/cert-manager-cainjector-748dc889c5     1         1         1   
    45m
+replicaset.apps/cert-manager-webhook-bc964d98b         1         1         1   
    45m
+
+NAME                           READY   AGE
+statefulset.apps/apisix-etcd   2/3     57m
+
+NAME                                     COMPLETIONS   DURATION   AGE
+job.batch/cert-manager-startupapicheck   1/1           6m24s      45m
+```
+
+>[Kubernetes Controller 
Manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 的机制决定了 Pod 名称会有所不同。
+
+## 步骤四:申请证书并测试
+
+首先我们需要配置证书颁发对象。
+
+```yaml
+# issuer.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+  name: issuer
+  namespace: ingress-apisix
+spec:
+  selfSigned: {}
+```
+
+并创建自签名证书颁发者。
+
+```bash
+kubectl apply -f issuer.yaml
+```
+
+>请注意,自签名颁发对象不推荐使用在生产环境中!更多证书颁发对象的配置请参考[这里](https://cert-manager.io/docs/configuration/)。
+然后为域名 `httpbin.org` 创建一张证书。

Review Comment:
   See, if you don't add a new line, it understands the two sentences as whole, 
which is not the case.
   
   <img width="991" alt="image" 
src="https://user-images.githubusercontent.com/36651058/217521148-22a38126-34fb-4768-8306-46f62583b3a1.png";>
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to