天天看點

手動安裝 Knative

本文選自 《Knative 雲原生應用開發指南》

本章主要介紹如何在已有 Kubernetes 叢集上執行 Knative 的自定義安裝。Knative的子產品化元件可以允許您安裝所需的元件。

準備工作

  • 本安裝操作中的步驟bash适用于MacOS或Linux環境。對于Windows,某些指令可能需要調整。
  • 本安裝操作假定您具有現有的Kubernetes叢集,可以在其上輕松安裝和運作Alpha級軟體。
  • Knative需要Kubernetes叢集v1.14或更高版本,以及可相容 kubectl。

安裝Istio

Knative 依賴 Istio 進行流量路由和入口。您可以選擇注入 Istio sidecar 并啟用 Istio 服務網格,但是并非所有Knative元件都需要它。

如果您的雲平台提供了托管的Istio安裝,則建議您以這種方式安裝Istio,除非您需要自定義安裝功能。

如果您希望手動安裝Istio,或者雲提供商不提供托管的Istio安裝,或者您要使用Minkube或類似的本地安裝Knative,請參閱

《 安裝Istio for Knative》指南

注意:可以使用

Ambassador

Gloo

替代Istio。

安裝Knative元件

每個Knative元件必須單獨安裝。您可以根據需要決定安裝哪些元件和内置監控插件。

注意:如果首次嘗試安裝失敗,請嘗試重新運作指令。很可能會在第二次嘗試中成功。

選擇Knative安裝檔案

可以使用以下 Knative 安裝檔案:

安裝Knative

  1. 如果要從 Knative 0.3.x 更新,請執行以下操作:将 domain 和靜态 IP 位址更新為與 istio-ingressgateway 關聯, 而不是 knative-ingressgateway。然後運作以下指令清理剩餘的資源:
kubectl delete svc knative-ingressgateway -n istio-system
kubectl delete deploy knative-ingressgateway -n istio-system           

如果安裝了Knative Eventing Sources元件,則還需要在更新之前删除以下資源:

kubectl delete statefulset/controller-manager -n knative-sources           
  1. 要安裝 Knative 元件或插件,請在kubectl apply指令中指定檔案名 。為了防止由于資源安裝順序導緻安裝失敗,請首先運作帶有該 -l knative.dev/crd-install=true 标志的安裝指令,然後再次運作沒有 --selector 标志的安裝指令。

    示例安裝指令:

  • 如果需要使用内置監控插件,安裝 Knative Serving 元件,請運作以下指令:
    • 僅安裝CRD:
kubectl apply --selector knative.dev/crd-install=true \
  --filename https://github.com/knative/serving/releases/download/{{ <版本> }}/serving.yaml \
  --filename https://github.com/knative/serving/releases/download/{{ <版本> }}/monitoring.yaml           
  • 删除--selector knative.dev/crd-install=true 标志,然後運作指令以安裝Serving元件和監控插件:
kubectl apply --filename https://github.com/knative/serving/releases/download/{{ <版本> }}/serving.yaml \
  --filename https://github.com/knative/serving/releases/download/{{ <版本> }/monitoring.yaml           
  • 如果不使用内置監控插件的情況下安裝所有Knative元件,請運作以下指令。
kubectl apply --selector knative.dev/crd-install=true \
  --filename https://github.com/knative/serving/releases/download/{{< version >}}/serving.yaml \
  --filename https://github.com/knative/eventing/releases/download/{{< version >}}/release.yaml           
  • 删除--selector knative.dev/crd-install=true 标志,然後運作指令以安裝所有Knative元件,包括Eventing資源:
kubectl apply --filename https://github.com/knative/serving/releases/download/{{ <版本> }}/serving.yaml \
--filename https://github.com/knative/eventing/releases/download/{{ <版本> }}/release.yaml           
  1. 根據選擇安裝的内容,通過運作以下一個或多個指令來檢視安裝狀态:
kubectl get pods --namespace knative-serving
kubectl get pods --namespace knative-eventing           
  1. 如果安裝了内置監控插件,請運作以下指令:
kubectl get pods --namespace knative-monitoring           

其它

考慮到國内使用者有可能拉取不斷外部鏡像,安裝檔案可參考:

https://github.com/knative-sample/knative-release/tree/v0.10.0
阿裡巴巴雲原生 關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。”

繼續閱讀