knative 安裝
本文安裝版本 knative 0.6。
准備
安裝 knative 前需要事先安裝 Kubernetes 集群 和 Istio。
安裝
下載安裝所需要的文件。以下選擇的是全安裝,如果不想要 knative 的全部功能,可自行選擇不需要的 yaml。由於所有的鏡像都是來自牆外,需要科 學上網。
cd /opt;mkdir knative;cd knative
wget https://github.com/knative/serving/releases/download/v0.6.0/serving.yaml
wget https://github.com/knative/build/releases/download/v0.6.0/build.yaml
wget https://github.com/knative/eventing/releases/download/v0.6.0/release.yaml
wget https://github.com/knative/eventing-sources/releases/download/v0.6.0/eventing-sources.yaml
wget https://github.com/knative/serving/releases/download/v0.6.0/monitoring.yaml
wget https://raw.githubusercontent.com/knative/serving/v0.6.0/third_party/config/build/clusterrole.yaml
安裝 CRD。
kubectl apply --selector knative.dev/crd-install=true -f .
安裝服務。
kubectl apply -f serving.yaml --selector networking.knative.dev/certificate-provider!=cert-manager \
-f build.yaml -f release.yaml -f eventing-sources.yaml \
-f monitoring.yaml -f clusterrole.yaml
查看 knative 的組件是否已全部就緒(處於 running 或 Completed 狀態)。
kubectl get pods -n knative-serving
kubectl get pods -n knative-build
kubectl get pods -n knative-eventing
kubectl get pods -n knative-sources
kubectl get pods -n knative-monitoring
也可以用 watch 方式實時查看是否已就緒。
kubectl get pods --all-namespaces --watch | grep -E "knative-serving|knative-build|knative-eventing|knative-sources|knative-monitoring"
在安裝過程中可能會碰到很多 pod 處於 pending 狀態,一般都是由於資源不夠導致。
自制鏡像安裝
由於很多鏡像來自牆外,在國內不能愉快的玩耍。這就需要自制鏡像。具體過程可看自制鏡像。
下面是 knative 0.6 里需要用到的鏡像,我這里已經自制完成,可直接下載
[root@test-1 download]# cat down.sh
#!/bin/bash
down_docker=(
mathlsj/knative-serving-cmd-webhook:0.6
mathlsj/knative-serving-cmd-networking-istio:0.6
mathlsj/knative-serving-cmd-networking-certmanager:0.6
mathlsj/knative-serving-cmd-controller:0.6
mathlsj/knative-serving-cmd-queue:0.6
mathlsj/knative-serving-cmd-autoscaler:0.6
mathlsj/knative-serving-cmd-activator:0.6
mathlsj/knative-eventing-cmd-apiserver_receive_adapter:0.6
mathlsj/knative-eventing-cmd-broker-filter:0.6
mathlsj/knative-eventing-cmd-broker-ingress:0.6
mathlsj/knative-eventing-cmd-controller:0.6
mathlsj/knative-eventing-cmd-cronjob_receive_adapter:0.6
mathlsj/knative-eventing-cmd-in_memory-controller:0.6
mathlsj/knative-eventing-cmd-in_memory-dispatcher:0.6
mathlsj/knative-eventing-cmd-sources_controller:0.6
mathlsj/knative-eventing-cmd-webhook:0.6
mathlsj/knative-eventing-sources-cmd-github_receive_adapter:0.6
mathlsj/knative-eventing-sources-cmd-manager:0.6
mathlsj/knative-build-cmd-controller:0.6
mathlsj/knative-build-cmd-creds-init:0.6
mathlsj/knative-build-cmd-git-init:0.6
mathlsj/knative-build-cmd-nop:0.6
mathlsj/knative-build-cmd-webhook:0.6
)
down_other=(
mathlsj/knative-addon-resizer:1.7
mathlsj/knative-elasticsearch:v5.6.4
mathlsj/knative-fluentd-elasticsearch:v2.0.4
mathlsj/knative-cloud-builders-gcs-fetcher:0.6
)
for var in ${down_docker[@]};do
docker pull $var
done
for var_other in ${down_other[@]};do
docker pull $var_other
done
自制鏡像完成后,knative 的鏡像是用 sha256 方式來 pull的。在本地我們不能通過 docker tag 的方式重新打包,只能修改 yaml 里的所有配置。配置修改后 yaml 文件已放在 github 上,有需要的大家自己下載。github地址。
配置文件修改完后,后繼的操作和原安裝步驟一樣。