如何通过容器服务在阿里云一分钟创建Wordpress博客

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过容器服务在阿里云一分钟创建Wordpress博客相关的知识,希望对你有一定的参考价值。

通过容器服务一分钟创建WordPress博客
目标
熟悉Docker的基本知识和容器服务的基本功能
在容器服务中成功通过一个编排模板创建WordPress博客
准备工作
产品基本介绍(https://help.aliyun.com/document_detail/containerservice/product-introduce/product-intro.html )
注意事项:
容器服务目前在公测期间,需要提前申请公测资格
容器服务创建的按量计费服务器,需要保证现金账户余额不得少于100元
步骤
进入容器服务控制台
创建第一个集群
搜索并查看WordPress镜像
选择模板创建应用
以下是具体的操作步骤
1.进入容器服务控制台
1.1 进入容器服务产品介绍页面
在阿里云首页www.aliyun.com的导航"产品"下浮列表中,选择"弹性计算"分类下的"容器服务(公测中)",如下图:

点击后进入产品介绍页面:

1.2 申请公测
点击"获取使用资格"(首次进入需要申请公测资格)或者直接进入"管理控制台"

1.3 查看指南
进入容器服务的控制台。点击左侧的"指南",进入介绍页面,了解容器服务的基本概念.

如有有更详细的了解,可以查看页面最下方的文档及帮助
2. 创建第一个集群
2.1 进入创建集群页面
点击上图中的"创建集群"链接

2.2 设置集群配置
填写集群名称:yunqi-test2
选择地域(杭州)和可用区(杭州可用区D)
选择操作系统:Ubuntu 14.04 64 位
选择网络类型:经典网络
容器服务为每个集群会默认创建一个按量计费的公网SLB,用于外部访问。
容器服务创建的云服务器和负载均衡目前均为按量计费。
2.3 设置实例配置

选择实例规格:2核4GB(ecs.s2.large)
选择实例数量:1
选择数据盘容量:20G (会被挂载到/var/lib/docker目录,用于Docker镜像和容器的存储。)
设置云服务器密码
2.4 创建集群并查看日志
点击"创建集群"按钮,自动跳转到集群列表页面,集群的状态显示"初始化中"。
点击"查看日志",查看创建集群的过程日志

等待集群状态变化为"运行中"
ps:如果集群创建失败,有可能是当前选择的地域和可用区没有库存,请换可用区或云服务器规格尝试。
2.5 查看节点信息
点击集群名称,展开节点列表信息

点击ip地址(120.55.183.83)的链接,进入节点页面

这个页面描述了当前节点下的容器列表,其中带"system"标签的容器代表是容器服务的系统容器,用来管理每台云服务器:
acs-agent:用于管理docker daemon
tunnel-agent:用于管理容器服务和云服务器的通信
acsrouting_routing:用于管理路由转发
点击左侧的节点监控,查看监控信息

3. 搜索并查看WordPress镜像
3.1 浏览镜像列表
点击左侧菜单"镜像和模板"里的"镜像",如下图

常用镜像:是容器服务挑选的一些最常用的镜像列表
Docker官方镜像:是容器服务从Docker Hub同步过来的Docker官方镜像列表
阿里云镜像:是阿里云提供的容器Hub的镜像列表,按照下载量排序
3.2 搜索一个镜像
在右上角的搜索框,搜索wordpress

3.3 查看镜像详情
点击acs-sample/wordpress镜像的"详情"链接,跳转到阿里云容器hub的镜像详情页面

右侧的"版本信息"展示了该镜像的tag列表
参考技术A 安装程序

阿里云容器服务DaemonSet实践

DaemonSet 保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。下面以日志收集 fluentd 为例,看下如何使用阿里云容器服务控制台创建DaemonSet。

准备Kubernetes环境

在阿里云容器服务控制台中创建Kubernetes 集群(1.11.5),3 master,3 worker

安装fluentd

1、选择应用->守护进程集->使用镜像创建

技术分享图片

 

填写应用名称,选择部署集群、命名空间,进入下一步

2、选择镜像并进行相应配置

技术分享图片

 

技术分享图片

 

技术分享图片

 

注意:这里挂载了配置项fluentd-conf,用来覆盖镜像中的默认配置,需要提前创建出来,内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-conf
namespace: kube-system
data:
td-agent.conf: |
<match fluent.**>
type null
</match>
<source>
type tail
path /var/log/containers/*.log
pos_file /var/log/es-containers.log.pos
time_format %Y-%m-%dT%H:%M:%S.%NZ
tag kubernetes.*
format json
read_from_head true
</source>
<filter kubernetes.**>
type kubernetes_metadata
verify_ssl false
</filter>

否则会遇到pod 启动问题

[error]: config error file="/etc/td-agent/td-agent.conf" error="Invalid Kubernetes API v1 endpoint https://172.21.0.1:443/api: SSL_connect returned=1 errno=0 state=error: certificate verify failed"

3、设置更新策略

可以在高级配置中选择升级方式:

  • 滚动升级(RollingUpdate):更新 DaemonSet 模版后,自动删除旧的 Pod 并创建新的 Pod
  • 替换升级(OnDelete):更新模板后,只有手动删除了旧的 Pod 后才会创建新的 Pod

4、指定节点调度

只选择worker节点安装。设置节点亲和性如图。

技术分享图片

 

技术分享图片

 

5、创建完成

点击创建,可以看到创建成功。

6、问题排查与更新

按着上述步骤可以看到在3个worker节点分别起了对应的pod,但pod并没有成功启动。选择其中的一个容器,查看一下日志发现如下错误:

config error file="/etc/td-agent/td-agent.conf" error="Exception encountered fetching metadata from Kubernetes API endpoint: pods is forbidden: User cannot list pods at the cluster scope"

Google后发现需要设置ClusterRole

apiVersion: v1
kind: ServiceAccount
metadata:
name: fluent-account
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: fluent-account
roleRef:
kind: ClusterRole
name: view
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: fluent-account
namespace: kube-system

创建成功后更新fluent-es 的yaml,编辑yaml,提交更新。

技术分享图片

 

Pod启动成功,日志已经可以正常采集了。

技术分享图片

 

总结

使用阿里云容器服务控制台支持方便的创建DaemonSet,欢迎使用体验。








































以上是关于如何通过容器服务在阿里云一分钟创建Wordpress博客的主要内容,如果未能解决你的问题,请参考以下文章

阿里云一 第一篇:云服务器ECS

一朵云一张网一体化 ——GRTN 打造最佳流媒体场景实践

8 分钟入门 K8s | 详解容器基本概念

一朵云一张网一体化 ——GRTN 打造最佳流媒体场景实践

阿里云容器服务DaemonSet实践

11