深圳网站制作哪家好,企业网站策划文案,网站推广策略ppt,公司部门kpi绩效考核指标模板title: #xff08;三#xff09;基于Knative开发应用
目录
安装 Istio安装 Knative玩转 helloworld-goWordPress 实战
创建 Kubernetes 集群
确保 Kubernetes 集群创建的时候已经选择了启用日志服务确保 Kubernetes 集群和 OSS 在一个 regionKubernetes 集群创建的时候需…
title: 三基于Knative开发应用
目录
安装 Istio安装 Knative玩转 helloworld-goWordPress 实战
创建 Kubernetes 集群
确保 Kubernetes 集群创建的时候已经选择了启用日志服务确保 Kubernetes 集群和 OSS 在一个 regionKubernetes 集群创建的时候需要开启 kube-apiserver 公网访问提前帮用户配置好 kubeconfig 命令行
安装 Istio
安装 Istio 时注意以下几点
默认要安装 gateway日志服务和 Xtrace 要提前开通Istio 需要使用 ZipKin v1 向 Xtrace 汇报监控数据
在容器服务集群管理页面可以直接在目标集群上部署 Istio
安装 Knative
选择好目标集群使用一键部署功能直接安装即可 安装文档
玩转 helloworld-go
配置日志采集策略部署 Helloworld监控告警调用链压测数据展示
日志管理
日志服务控制台 https://sls.console.aliyun.com本示例以容器标准输出采集为例进行展示详细设置步骤可以参考日志服务文档根据 Kubernetes 集群 ID 找到对应的日志服务 Project创建一个新的 Logstore
设置数据导入方式
选择 Docker标准输出
配置容器标准输出日志采集策略
{inputs: [{detail: {IncludeEnv: {K_SERVICE: helloworld-go},IncludeLabel: {},ExcludeLabel: {}},type: service_docker_stdout}],processors: [{detail: {KeepSource: false,NoMatchError: true,Keys: [time,level,msg],NoKeyError: true,Regex: (\\d-\\d-\\d \\d:\\d:\\d)\\s(\\w)\\s(*),SourceKey: content},type: processor_regex}]
}
分别为相应的键值 time、level 和 msg 设置数据类型
部署 Helloworld
准备 kubeconfig
到容器服务控制台页面打开集群详情页。复制 KubeConfig 内容保存到本地 ~/.kube/config 文件
git clone https://github.com/knative-sample/helloworld-go 安装 cd helloworld-go
kubectl apply -f sample/service.yaml
多访问几次 helloworld-go 生成一些访问日志
./sample/run-test.sh
生成一些访问日志以后点击查询即可查看相应的日志
日志服务控制台 https://sls.console.aliyun.com
日志服务有丰富的查询条件比如查询 ERROR 日志
监控告警
使用下查询语句进行搜索这条语句使用了 SELECT 可以进行更高级别的操作。
level:ERROR | SELECT COUNT(*) as total
搜索ERROR 日志时间跨度选择一分钟。
点击另存为告警
触发条件的变量就是 左侧表格中的列名称
如下设置的含义是1分钟检索一次 ERROR 日志的数量如果大于等于4 就告警。
可以设置多种告警通知方式并且告警 body 还可以使用系统变量。获取告警的上下文信息。
打开邮件可以看到告警通知
调用链
调用链控制台 https://tracing-analysis.console.aliyun.com
选择相应的 Region点击应用列表查看应用列表
调用链查询页面
压测数据展示
下载源文件 https://kstarter.oss-cn-beijing.aliyuncs.com/knload-result.html 直接用浏览器打开即可查看
压测的并发数陡增导致服务响应时间抖动但随着 Pod 数量的自动扩容 RT 很快就恢复到了正常水位。
压测工具 knloadserver 端模拟http-server
WordPress
部署 WordPress修改主题和安装 pluginOSS 图片添加水印现场互动压测
部署 WordPress 工程 https://github.com/knative-sample/wordpresshttps://github.com/knative-sample/deployer 部署 WordPress ## ENV 换成具体的值env:- name: WORDPRESS_DB_HOSTvalue: {db_host:3306}- name: WORDPRESS_DB_NAMEvalue: {db_name}- name: WORDPRESS_DB_USERvalue: {db_user}- name: WORDPRESS_DB_PASSWORDvalue: {db_password}## 部署 WordPress # kubectl apply -f /Users/qiulin.nql/works/github/knative-sample/secret/wordpress-service.yaml
kubectl apply -f sample/service.yaml 添加 Egress kubectl apply -f sample/egress.yaml 访问 WordPress 服务 ./hack/run-wp-test.sh host 绑定 浏览器访问 日志收集 {inputs: [{detail: {IncludeEnv: {K_SERVICE: wordpress},IncludeLabel: {},ExcludeLabel: {}},type: service_docker_stdout}],processors: [{detail: {KeepSource: false,NoMatchError: true,Keys: [ip,time,req,code],NoKeyError: true,Regex: (\\d.\\d.\\d.\\d)\\s-\\s(\\d/\\w/\\d:\\d:\\d:\\d\\s\\\\d)\\s\(.*)\\\s(\\d),SourceKey: content},type: processor_regex}]
}
多并发测试
hey -z 30s -c 50 http://wordpress.default.example.com/ kubectl get pods
修改主题和安装 plugin
plugins
原文链接 本文为云栖社区原创内容未经允许不得转载。