Kubernetes + Knative :玩转云上弹幕部署 获取通关奖励
作者:互联网
2021.4.2-4.11期间任务通关奖励
任务完成后,您可以领取如下各种奖励:
1、您可以领取“阿里云20元抵用券”共计1500张,每天限领150张。
2、CNCF官方“Kubernetes”指尖陀螺一个加减压握力圈一个,共计1000套,每天200套。
3、 幸运转盘锦鲤抽奖,礼品范围机械键盘、阿里云定制水杯、无线充电线、台灯, 共计16个。
领取地址:https://developer.aliyun.com/adc/series/ask
必读说明
按照操作文档,完成部署任务,会消耗一定的云资源,并产生费用,包括容器服务集群ASK及Kafka实例所需资源费用。
- 消息服务Kafka: 1个5元月包
- 容器服务ASK集群: 集群底层计算资源ECI弹性容器实例(4c8g左右)、集群APIserver的内网SLB、集群拉取公网镜像需要的NAT网关实例费与流量费用
- 应用对外暴露公网访问:1个内网SLB 与 1个公网EIP
以1小时的推荐体验时长为例,预计消耗6-7元。(消息队列Kafka 5元包 可按量付费)
创建ASK集群
1.打开容器服务控制台,开始创建ASK集群
https://cs.console.aliyun.com/#/k8s/cluster/createV2/serverless
2.填写配置并创建集群
建议选择深圳region,并且请记住后续资源开通均选择此region,并注意下图红框中的配置一致;否则无法部署本实验应用、或代金券额度不足无法进行。
备注:
1 此项需要您的账号有100元余额,否则无法通过。
2 如果您已经有可用Kafka实例,此处可选择与Kafka实例对应region。
创建集群参考图
点击右侧的“创建集群”按钮,页面呈现三列检查项目,依次通过即可创建集群。
备注:如果您出现“not authorized to create an enhanced NAT gateway”的集群创建失败提示,请重新再创建一次。
3.在ASK中部署容器的Eventing
集群创建完毕后,出现在控制台左侧导航栏中。单击新建集群名,进入集群管理更多。
a.在集群管理页左侧导航栏中,选择应用 > Knative。
b.在组件管理页签核心组件区域单击Eventing操作列的部署。
Knative组件Eventing部署参考图
4.在ASK集群中安装Kafka Source
a.在集群管理页左侧导航栏中,选择应用 > Knative。
b.在组件管理页签add-on 组件区域单击Kafka操作列的部署。
在容器集群中加入Kafka组件部署参考图
5.记录ASK集群网络资源,据此信息部署Kafka
您需要根据ASK集群的虚拟专有网络VPC、节点虚拟机VSwitch,相应地部署Kafka实例。
点击左侧目录集群信息》集群资源,找到对应的VSwitch ID和VPC ID,您可以保持此窗口。
购买Kafka实例
新开一个浏览器窗口,输入https://common-buy.aliyun.com/?commodityCode=alikafka_pre
1.开通kafka 5元包
选择 「流量规格:alikafka.hw.test」 , 「实例类型:VPC实例」,「磁盘类型:高效云盘」。 即可获得1个月5元的Kafka资源包。同时,建议选择深圳region,务必与前面ASK集群在同一个region。
备注:此款优惠价格仅限于Kafka新客户,如果您已经拥有了Kafka实例可以复用已有资源,或者直接购买按量实例。
2.部署实例
a.在消息队列Kafka版控制台的实例列表页面,找到未部署的实例,单击部署。
Kafka实例部署参考图
b.在部署对话框,部署实例。
从VPC ID列表,选择上述ASK集群的VPC ID。
从VSwitch ID列表,选择上述ASK集群的VSwitch ID。选择VSwitch ID后,系统会为您自动选择该交换机所在的可用区。
可选:如果实例的规格类型为专业版,您可以选择是否跨可用区部署。跨可用区部署具备较高的容灾能力,可以抵御机房级别的故障。
单击部署。
c.实例进入部署中状态。实例部署预计需要10分钟~30分钟。
3.创建Topic
创建topic,请命名demo。「不建议修改,这样可以直接复用后面yaml」
4.创建Consumer Group
创建Consumer Group,请命名demo-consumer。「不建议修改,这样可以直接复用后面yaml」
5.为Kafka添加白名单
点击实例 》 选择灰色目录安全配置 》安全变更 》 添加白名单IP 》 输入0.0.0.0/0 确定添加
6.保存本Kafka实例默认接入点
a.在消息队列Kafka版控制台的实例列表页面,单击目标实例名称。
b.在实例详情页面的基本信息区域,查看实例的默认接入点。
在实例详情中可以看到该信息,选择蓝色复制按钮,暂存Kafka默认接入点,建议可以暂时存到本地某个txt文件中。
通过模版文件(yaml)部署弹幕相关应用服务
将下面yaml的两处 KAFKA_SOURCE_LIST 替换成上步中获取到的Kaka「默认接入点」。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: danmu-portal
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/maxScale: "1"
autoscaling.knative.dev/minScale: "1"
spec:
containerConcurrency: 0
serviceAccountName: danmu-install-sa
containers:
- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/danmu:v1.1
name: user-container
env:
- name: KAFKA_SERVER
value: "__KAFKA_SOURCE_LIST__"
- name: KAFKA_TOPIC
value: "demo"
ports:
- containerPort: 8080
name: http1
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: danmu-message
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/maxScale: "10"
autoscaling.knative.dev/minScale: "1"
spec:
containerConcurrency: 2
containers:
- args:
- /manager
- --url=http://danmu-portal.default.svc.cluster.local/api/send
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: registry.cn-hangzhou.aliyuncs.com/knative-sample/danmu-manager:danmu_48680a04-20210319171906
name: user-container
ports:
- containerPort: 8000
name: http1
---
apiVersion: sources.knative.dev/v1alpha1
kind: KafkaSource
metadata:
annotations:
k8s.aliyun.com/req-timeout: "60"
k8s.aliyun.com/retry-count: "1"
k8s.aliyun.com/retry-interval: "2"
name: kafka-danmu
namespace: default
spec:
bootstrapServers: "__KAFKA_SOURCE_LIST__"
consumerGroup: demo-consumer
sink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: danmu-message
namespace: default
topics: demo
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: danmu-install
labels:
app: danmu
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: danmu-install-role-binding
labels:
app: danmu
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: danmu-install
subjects:
- kind: ServiceAccount
name: danmu-install-sa
namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: danmu-install-sa
namespace: default
labels:
app: danmu
返回到容器服务控制台, 找到此前的集群并开始部署。
在集群管理页左侧导航栏中,选择应用 > Knative > 服务管理。
在服务管理页单击使用模版创建,贴入yaml文件,并且把这个 yaml 中的两个 KAFKA_SOURCE_LIST 替换成 kafka 「默认接入点」。
将资源请部署到 default 命名空间。
最后成功检查示例图
绑定域名并开始体验
1.找到ASK集群中Knative的访问网关,用于下一步绑定域名
在Knative对应组件管理页面,复制访问网关地址
2.添加 host 绑定
a.Linux 和 Mac 编辑/etc/hosts 文件,在最后添加一行,将对应的“47.95.xx.xx”更换成上步获取到的「访问网关地址」
```sudo vim /etc/hosts
47.95.xx.xx danmu-portal.default.example.com
b.Windows
直接在 C:\WINDOWS\system32\drivers\etc 目录的 HOSTS 文件最后添加一行 47.95.139.xx danmu-portal.default.example.com 即可。具体操作方法参见:https://yq.aliyun.com/articles/706009
c.如果如果有公网域名,也可以绑定
最后,恭喜通关!!开始体验吧!!
在浏览器输入“http://danmu-portal.default.example.com/”开始体验吧
![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5e5eae3c67a04165a57a9f06fd41c724~tplv-k3u1fbpfcp-watermark.image)
## 删除所有资源
1.先删除容器集群中的应用、组件以及集群。
a、先删除Knative中的“服务管理“,列表中有刚刚通过yaml部署的两个服务。
b、随后Knative中的“组建管理”,一键卸载Kantive及相关组建。
c、前往集群的 工作负载》无状态 》 选择“所有命名空间” ,此时应该仅剩唯一的“kafkasource-kafka-danmu***”一项,点击最右端的“更多”》删除。
d、前往集群的容器组》选择“所有命名空间” ,此时应该仅剩唯一的“storage-version-migration-eventing-eventing**”一项,点击最右端的删除。
5、在确认上述四个页面都已经删除完毕后,您现在ASK集群即为空集群,可以进行删除。返回集群列表,对实验集群进行删除。找到对应集群,点击最右端的“更多”》 “查看更多 ”「选择保留集群中的VPC和虚拟交换机」删除。
![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/915cef6b27c546519099f84bad669997~tplv-k3u1fbpfcp-watermark.image)
说明:VPC和虚拟交换机是免费资源, 此资源中有Kafka实例,出于使用安全考虑,容器不会删除这两个免费的网络资源。
![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a877a8a04f00482a8fbde4b311c69578~tplv-k3u1fbpfcp-watermark.image)
2.删除Kafka资源包
如果您按照前序步骤购买的是5元实例且没有选择自动续费,该实例资源在一个月后自动失效并且不会再产生费用。 您可以继续体验该产品,如果非常希望删除可提交工单。
3.再次确认本实验所有付费资源均已删除,不再产生费用
ASK控制台,确定并无集群 https://cs.console.aliyun.com/#/k8s/ask/list
ECI控制台,切换到此前使用region,确定并无ECI资源 https://eci.console.aliyun.com/
NAT控制台,切换到此前使用region,确定并无NAT资源 https://vpc.console.aliyun.com/nat
SLB控制台,切换到此前使用region,确定并无SLB资源 https://slb.console.aliyun.com/slb
EIP控制台,切换到此前使用region,确定并无EIP资源 https://vpc.console.aliyun.com/eip
Kafka控制台,切换到此前使用region,确定并无Kafka资源 https://kafka.console.aliyun.com/
标签:name,Kubernetes,com,Kafka,danmu,实例,集群,Knative,弹幕 来源: https://blog.51cto.com/14981263/2680927