前提概要
场景描述:阿里云日志服务(SLS)结合Kubernetes日志特点以及应用场景,提供全方位的容器微服务应用环境下的日志采集、处理以及分析的实践。
产品列表:容器服务 Kubernetes 版、日志服务 SLS、专有网络 VPC、负载均衡 SLB、弹性计算 ECS、容器镜像服务 ACR、云数据库 RDS 版、智能解析 DNS。
解决问题:
- 容器微服务架构下日志采集困难;
- 日志采集 Agent 资源消耗多;
- 运维日志平台系统成本代价高;
- 日志分析方式少,日志分析不方便。
实践方案架构:
方案价值:
- 基于 Logtail 一键完成安装,CRD 扩展,与 K8S 部署管理方式无缝集成;
- 日志服务为 Ingress 提供可视化分析报表;
- 简化 Ingress 日志分析与监控的门槛。
日志采集部署建议:
- 核心应用:使用 SideCar 方式采集;
- 普通应用/系统日志:使用 DaemonSet 方式采集;
- 标准输出: 使用 DaemonSet 方式采集。
常见问题
CADT创建资源校验失败怎么办?
- 确定各个产品的权限已开通;
- 创建VPC网络与ACK的Service CIDR不能有网段交叉,以下为我创建时填写的参数,仅供参考:
- ACK的网段设置
- Pod 网络 CIDR:10.30.0.0/16
- Service CIDR:172.16.0.0/16
CADT资源创建成功后资源状态却又改为已删除?
- 确认选中的Region、AZ有无对应规格与资源;
- 确认对应资源名称是否已被占用,需要保证SLS等产品的名称变量全局唯一。
配置RDS 数据库需要注意什么?
- 配置RDS的白名单为VPC的网段,使得VPC内的设备实例可以访问该RDS。
- 配置RDS为企业版才可完成后续第10章RDS审计日志采集分析与监控的操作。
如何在容器中以VNC方式配置docker环境?
- 下载update:yum update
- 环境配置:docker-ce环境安装
步骤1:下载repo文件:curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
步骤2:安装containerd.io依赖:yum -y install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
步骤3:下载docker-ce版本:yum -y install docker-ce
步骤4:启动docker并检查是否版本是否为ce版本
- 启动docker服务:systemctl start docker
- 将docker加入开机启动:systemctl enable docker
- 重新加载docker服务程序配置文件:systemctl daemon-reload
- 查看docker版本:docker version
如何在Docker中拉取镜像以及常见问题?
- 拉取原始镜像:docker pull wordpress
- 获取镜像ID与镜像版本:docker images | grep wordpress
易得镜像ID:5f9d748595e1,镜像版本:v1.0。
- 登陆镜像仓库并推送镜像
步骤1:登录阿里云Docker Registry:docker login --username=*****@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com
ps:****为阿里云账号前缀
步骤2:给镜像打标签:docker tag {镜像ID} registry.cn-hangzhou.aliyuncs.com/{镜像仓库命名空间}/{镜像仓库名称}:{版本号}
步骤3:将镜像推送到Registry:sudo docker push registry.cn-hangzhou.aliyuncs.com/{镜像仓库命名空间}/{镜像仓库名称}:{版本号}
ps:填写时需要删除{}
- 常见问题
- docker login:提示host不存在:给镜像仓库开通公网访问权限
- 提示volume不存在:更换namespace
拉取镜像时下载速度很慢或中途连接直接断掉拉取失败?
问题原因:docker的wordpress官方镜像源在国外,下载时网络质量极差,甚至中断。
解决方案:修改拉取镜像的json配置文件,镜像源改为阿里云国内网址。
- 在对应容器节点中远程登录实例,在/etc/docker/路径下创建vim daemon.json文件,文件内容如下:
{
"registry-mirrors": ["https://oojjt1xs.mirror.aliyuncs.com"]
}
- 再次执行docker pull wordpress命令即可快速下载拉取
根据镜像搭建无状态应用报错ErrImagePull && ImagePullBackOff?
问题原因:没有配置对应镜像拉取策略。
参考文档:使用免密组件配置镜像拉取策略。
解决方案:
- 升级/安装aliyun-acr-credential-helper组件
- 在容器控制台集群列表页面,单击目标集群操作列下的更多 > 系统组件管理
- 在安全区域,找到aliyun-acr-credential-helper,单击升级
- 通过控制台方式设置acr-configuration配置项
- 在容器集群信息页面左侧导航栏,选择配置管理 > 配置项,在上方命名空间下拉框中选择kube-system,找到配置项acr-configuration
- 通过以下两种方式配置acr-configuration
- 方式一:单击其右侧的编辑,设置配置项键和值
- 方式二:单击其右侧的YAML编辑,设置配置项键和值
搭建应用后访问路由地址显示Error establishing a database connection?
问题描述:无状态应用创建成功,但是用路由器Ingress提供的域名无法访问wordpress网页,会出现无法连接数据库的错误。
问题原因:由于wordpress的配置文件的yaml文件未配置环境变量导致的,配置数据库有关的环境变量后即可以连接上去。
解决方法:
步骤一:前往RDS数据库控制台,找到自己创建的数据库,点击左边目录栏的“数据库连接”,复制内网地址。
步骤二:继续点击数据库管理,记录数据库的名称、用户名。
步骤三:前往ACK容器管理控制台,点击进入自己创建的集群,点击进入自己创建的无状态应用中,点击查看Yaml
找到yaml文件中,配置环境变量的那一部分文件(可以看到-name,-value的那部分文件)在里面加上自己数据库的环境变量。
- name: WORDPRESS_DB_HOST value: '步骤一中复制的数据库的内网地址:3306' - name: WORDPRESS_DB_NAME value: 步骤二中记录的数据库的名称 - name: WORDPRESS_DB_USER value: 步骤二中绑定账户的名称 - name: WORDPRESS_DB_PASSWORD value: 账户对应的密码
修改后的结果,具体示意如下,修改完成后点击更新,耐心等待一会(半分钟)即可。