快速安装

    • 本文将以 Kind 为例,介绍如何安装 Kubeprober 及其简单的使用操作。
    • 生产环境的部署方式可参考本文操作。
    • 部署前请克隆 Kubeprober 的代码仓库或者下载 Release 包。
    1. 准备一个包含 Ingress 的集群配置文件。

    2. 启动集群。

    3. 部署 Ingress。

      1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/v1.0.0-alpha.1/deploy/static/provider/kind/deploy.yaml

    Master 端仅有一个 probe-master 组件,其依赖于 Kubernetes 的 Webhook 进行资源的前置校验工作。使用 cert-manager 服务进行 Webhook 证书的自动签发前,需先部署 cert-manager 服务,待 cert-manager 的 Pod 全部成功启动后再安装后续组件。 ```shell script kubectl apply -f

    1. ### 配置 probe-master 的 Secret-key
    2. probe-master probe-tunnelAgent 端组件)的交互通过 Secret-key 进行认证。您可在 probe-master 配置 Secret-key 作为集群接入的统一凭证,为 probe-tunnel 组件同样配置相应的 Secret-key probe-master 交互。
    3. ```shell script
    4. vim deployment/probe-master.yaml
    5. apiVersion: apps/v1
    6. kind: Deployment
    7. metadata:
    8. name: probe-master
    9. spec:
    10. spec:
    11. containers:
    12. - command:
    13. - /probe-master
    14. env:
    15. - name: SERVER_SECRET_KEY
    16. value: your-token-here

    由于 Kubernetes 本身没有集群名的概念,因此 Agent 端中加入该项,结合上文提及的 Secret-key,需在 Agent 端配置 Master 地址、 集群名、Secret-key 等内容。

    ```shell script vim deployment/probe-agent.yaml


    apiVersion: v1 kind: ConfigMap metadata: name: probeagent namespace: system data: probe-conf.yaml: | probe_master_addr: http://probe-master.kubeprober.svc.cluster.local:8088 cluster_name: moon secret_key: your-token-here

    1. ### 部署 Agent 组件
    2. APP=probe-agent make deploy

    probe-agent 与 probe-tunnel 成功启动后,会将集群信息上报至 probe-master,由 probe-master 创建对应的集群资源,可通过如下命令查看:

    1. kubectl get cluster

    在 probe-master 所在的集群创建 Probe 资源(位于 Default 的 Namespace 下)。

    上述 Probe 已指定运行策略,即每隔 30 分钟运行一次 K8s 诊断。 ```shell script kubectl apply -f probe.yaml

    1. ![](http://terminus-paas.oss-cn-hangzhou.aliyuncs.com/paas-doc/2021/10/08/cb1cc9e9-2cbe-41a1-bce0-92ada89de12c.png)
    2. ### 关联集群
    3. 通过 kubectl label 关联 Probe Cluster,例如将 K8s Probe 关联至 Moon 集群。
    4. kubectl label cluster moon probe/k8s=true

    快速安装 - 图2

    通过 kubectl probe 指令查看特定集群的诊断结果。

    运行 kubectl probe 指令需获取 probe-master 地址。由于本文以 Kind 为例进行部署,因此可创建一个 Ingress 将 probe-master 暴露出来。

    1. apiVersion: extensions/v1beta1
    2. kind: Ingress
    3. metadata:
    4. name: kubeprober
    5. namespace: kubeprober
    6. spec:
    7. rules:
    8. - host: kubeprober.moon.cn
    9. http:
    10. paths:
    11. - backend:
    12. servicePort: 8088

    查看诊断结果。