系列文章:
总目录索引:九析带你轻松完爆 Knative 系列教程
目录
1 前言
2 邀约
3 Knative 简介
4 组件安装
4.1 安装服务组件(Serving)
4.1.1 安装 Custom Resource Definitions(CRDs)
4.1.2 安装服务核心组件
4.1.3 安装网络层
4.1.4 配置服务默认使用 Kourier
5 部署 hello world 应用
5.1 编写 hello world 应用
5.2 部署 hello world 应用
5.3 访问 hello world 应用
1 前言
如果你对博客有任何疑问,请告诉我。
2 邀约
你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:
3 Knative 简介
本文档将带您完成最新版的 Knative 安装。
Knative 有两个主要组件 —— 服务(Serving )和事件(Eventing):
服务(Serving)组件(版本 0.9):为基于无状态请求的从零扩展服务提供了一种抽象
事件(Eventing)组件(版本 0.16):为启用事件源(例如 Github Webhooks,kafka)和事件使用者(例如 k8s)绑定提供了一种抽象
Knative 还有一个 Observability 插件(目前该插件已过期,版本 0.14)。该插件作用是提供标准工具去查看运行在 knative 上的服务健康情况。
上面概念模糊的同学不用太追究,后续会逐步介绍。目前先有个概念即可。
4 组件安装
4.1 安装服务组件(Serving)
4.1.1 安装 Custom Resource Definitions(CRDs)
kubectl apply -f https://github.com/knative/serving/releases/download/v0.17.0/serving-crds.yaml
4.1.2 安装服务核心组件
kubectl apply -f https://github.com/knative/serving/releases/download/v0.17.0/serving-core.yaml
4.1.3 安装网络层
Knative 新版本已经不再强依赖 Istio,所以这里我们使用 Knative 社区自己开发的网络层 Kourier。
kubectl apply -f https://github.com/knative/net-kourier/releases/download/v0.17.0/kourier.yaml
调整 Kourier 服务的类型为 NodePort,指令如下:
kubectl patch svc -n kourier-system kourier -p '{"spec": {"type": "NodePort"}}'
4.1.4 配置服务默认使用 Kourier
默认 Serving 配置位于 config-network 的 configmap 中,执行如下命令将 ingress.class 从 Istio 替换为 kourier。
kubectl patch configmap/config-network \
--namespace knative-serving \
--type merge \
--patch '{"data":{"ingress.class":"kourier.ingress.networking.knative.dev"}}'
5 部署 hello world 应用
在部署 hello world 应用之前,首先确保 Knative 和 Kourier 都运行成功,如下图所示:
5.1 编写 hello world 应用
编写 Knative service 的 helloworld.yaml 文件:
---
apiVersion: v1
kind: Namespace
metadata:
name: helloworld
---
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: hello
namespace: helloworld
spec:
template:
metadata:
labels:
app: hello
annotations:
autoscaling.knative.dev/target: "10"
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/simple-app:132e07c14c49
env:
- name: TARGET
value: "World!"
5.2 部署 hello world 应用
执行如下语句部署 Knative service 应用:
kubectl apply -f helloworld.yaml
执行完,使用如下命令查看 Knative service 应用部署结果:
kubectl get ksvc -n helloworld
命令执行结果如下图所示:
5.3 访问 hello world 应用
使用 curl 客户端工具访问部署的 Knative service 服务,命令如下:
curl -H "Host: hello.helloworld.example.com" http://10.110.101.98:32349
因为我们使用了基于 Kourier 网络层,所以此处的 32349 就是 Kourier service 对外开放的访问端口,如下图所示:
最终 curl 命令执行成功结果如下图所示:
自此,九析带你轻松完爆 Knative 安装。
John966 2 月前
yoonyul 4 月前