knative-serving安装
- Knative-serving-v1.0.0安装
- 1. 前提条件
- 2. 文件来源说明
- 3. 运行yaml文件
- 4. 查看pod是否创建完成
- 5.配置为knative网络默认使用Kourier
- 6.设置所属域
- 6.1 配置无负载均衡的所属域
- 6.2 配置带有负载均衡的所属域
- 7.验证
- 8. 具体使用方式
- 9. 参考
- 其他意外状况
Knative-serving-v1.0.0安装
编写时间:2021-12-05
修改时间:2021-12-08 添加了k8s版本、执行yaml文件可能出现的问题、负载均衡下dns配置、删除检测环境
修改时间:2021-12-18 修改访问helloworld的命令的解释
友情链接:knative简介
1. 前提条件
knative与kubernetes的对应关系参考:knative计划
kubernetes 建议 v1.21之上
kubernetes环境要求:
- 如果是单节点集群,建议至少需要6个CPU、6G内存、30G磁盘
- 如果是多节点集群,建议每个节点至少需要2个CPU、4G内存、20G磁盘
- 需要有kubectl命令行工具
- 需要有docker命令行工具
2. 文件来源说明
文件需要自行获取
- yaml文件:gitee地址
- docker镜像:docker hub 地址
3. 运行yaml文件
1: serving-crds.yaml和serving-core.yaml是安装knative-serving的yaml文件
2: kourier.yaml是安装knative网络层的yaml文件
kubectl apply -f serving-crds.yaml
kubectl apply -f serving-core.yaml
kubectl apply -f kourier.yaml
3.1 可能遇到的问题
apiVersion版本不对,请修改yaml文件的内容,之后再次执行
Warning: policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
sed -i "s/policy\/v1beta1/policy\/v1/g" XXX.yaml
4. 查看pod是否创建完成
kubectl get pod -n knative-serving
kubectl get pod -n kourier-system
5.配置为knative网络默认使用Kourier
kubectl patch configmap/config-network \-n knative-serving \--type merge \-p '{"data":{"ingress.class":"kourier.ingress.networking.knative.dev"}}'
6.设置所属域
6.1 配置无负载均衡的所属域
kubectl patch configmap/config-domain \-n knative-serving \--type merge \-p '{"data":{"127.0.0.1.nip.io":""}}'
kubectl patch service/kourier \
-n kourier-system \
--type merge \
-p '{"spec":{"type":"NodePort"}}'
6.2 配置带有负载均衡的所属域
使用sslip.io作为默认 DNS 后缀
kubectl apply -f serving-default-domain.yamlkubectl patch configmap/config-domain \-n knative-serving \--type merge \-p '{"data":{"sslip.io":""}}'
7.验证
- 创建
serving-test
的命名空间
kubectl create namespace serving-test
- 运行helloworld-go.yaml文件
kubectl apply -f helloworld-go.yaml
- 等待pod创建
kubectl get pod -n serving-test
- 获取请求头
kubectl get route -n serving-test
- 访问helloworld
1: :是kubectl get route -n serving-test
获取的url
,去掉url
的http://
2: 和是knative-serving的网络服务ip和端口,kourier网络可以通过kubectl get service kourier -n kourier-system
获取,端口是内部端口
3: 1-2分钟如果没有请求访问,pod会自动扩缩容到0
4: 响应值为Hello World!
,表示成功
curl -H "Host: " http://<serving_network_ip>:<serving_network_port>
- 删除检测环境
kubectl delete namespaces serving-test
8. 具体使用方式
knative-serving的使用
9. 参考
Knative官网
其他意外状况
如果其他意外情况&#xff0c;还请告知&#xff0c;谢谢