Knative 安装

    我们安装的 Istio 的基本情况:

    • Kubernetes 1.15
    • Istio v1.1.7
    • 启动 Sidecar 自动注入
    • 使用 Helm 安装
    • 不启用 SDS

    运行以下命令安装 Istio。

    执行下面的命令验证 Istio 的安装是否正确。

    首先检查 Istio 的 pod 是否完全启动。

    1. $ kubectl get pods --namespace istio-system
    2. NAME READY STATUS RESTARTS AGE
    3. istio-citadel-8559955d59-j5xx9 1/1 Running 0 40m
    4. istio-cleanup-secrets-1.1.7-rb9hp 0/1 Completed 0 40m
    5. istio-galley-fd84c8888-8kljq 1/1 Running 0 40m
    6. istio-ingressgateway-8486b5db4f-hhqfg 1/1 Running 0 40m
    7. istio-pilot-7846986bf5-5ql82 2/2 Running 0 40m
    8. istio-pilot-7846986bf5-xgqhk 2/2 Running 0 40m
    9. istio-policy-f7f8c578b-7rz2j 2/2 Running 2 40m
    10. istio-security-post-install-1.1.7-nqm9z 0/1 Completed 0 40m
    11. istio-telemetry-575c8d8d66-pb27q 2/2 Running 3 40m

    部署 bookinfo 示例应用确认 Istio 所有组件可以正常工作。

    参考 确认可以正常访问 productpage 页面。

    • Knative v0.9.0

    运行下面的命令直接安装 Knative。

    1. # 安装 Knative CRD
    2. kubectl apply --selector knative.dev/crd-install=true \
    3. --filename https://github.com/knative/serving/releases/download/v0.9.0/serving.yaml \
    4. --filename https://github.com/knative/eventing/releases/download/v0.9.0/release.yaml \
    5. # 再运行一遍 kubectl apply
    6. kubectl apply --filename https://github.com/knative/serving/releases/download/v0.9.0/serving.yaml \
    7. --filename https://github.com/knative/eventing/releases/download/v0.9.0/release.yaml \
    8. --filename https://github.com/knative/serving/releases/download/v0.9.0/monitoring.yaml

    或者使用本书中提供的 YAML 直接安装。

    [info] 提示

    因为 quay.iogcr.iok8s.gcr.iodocker.elastic.co 等镜像仓库在中国大陆无法访问,位于中国大陆的用户可以使用本书仓库中的 manifests/knative/0.9 目录下的 YAML 文件安装,其中以上镜像已替换为 DockerHub 镜像源。

    验证 Knative 安装

    1. $ kubectl get pods --namespace knative-serving
    2. $ kubectl get pods --namespace knative-eventing
    3. $ kubectl get pods --namespace knative-monitoring
    4. NAME READY STATUS RESTARTS AGE
    5. activator-76f486c78-9k7l7 2/2 Running 3 34m
    6. autoscaler-7495bcbc4b-j58n5 2/2 Running 2 34m
    7. autoscaler-hpa-66b55c9688-w2x58 1/1 Running 0 34m
    8. webhook-8dcd46846-kz78d 1/1 Running 0 34m
    9. NAME READY STATUS RESTARTS AGE
    10. eventing-controller-8466765fbf-djs8v 1/1 Running 0 34m
    11. eventing-webhook-684467d8f5-klb7s 1/1 Running 0 34m
    12. imc-controller-66dfdb6878-8mppw 1/1 Running 0 34m
    13. imc-dispatcher-7db65bf44b-kwwhs 1/1 Running 0 34m
    14. sources-controller-75c57459cc-xttxr 1/1 Running 0 34m
    15. NAME READY STATUS RESTARTS AGE
    16. elasticsearch-logging-0 1/1 Running 0 12m
    17. elasticsearch-logging-1 1/1 Running 0 11m
    18. grafana-85c86fb7b9-8b95g 1/1 Running 0 34m
    19. kibana-logging-85569f954d-fc65f 1/1 Running 0 35m
    20. kube-state-metrics-6fd74d89bf-7kmk6 4/4 Running 0 30m
    21. node-exporter-6z6nk 2/2 Running 0 34m
    22. node-exporter-hm2gr 2/2 Running 0 34m
    23. node-exporter-rhc7r 2/2 Running 0 34m
    24. prometheus-system-1 1/1 Running 0 34m

    参考 Getting Started with App Deployment 部署 helloworld-go 示例验证 Knative 是否正常运行。