TKEStack容器管理平台实战之部署wordpress应用
- 一、TKEStack介绍
- 1.1 TKEStack简介
- 1.2 TKEStack特点
- 1.3 TKEStack架构图
 
- 二、kubernetes集群介绍
- 2.1 k8s简介
- 2.2 k8s架构图
 
- 三、本次实践介绍
- 3.1 实践环境要求
- 3.2 本次实践环境规划
- 3.3 本次实践简介
 
- 四、安装容器管理平台
- 4.1 安装TKEStack
- 4.2 TKEStack基本设置
- 4.3 集群设置
- 4.4 认证设置
- 4.5 镜像仓库设置
- 4.6 业务设置
- 4.7 监控设置
- 4.8 控制台设置
- 4.9 配置预览
- 4.10 开始安装
 
- 五、访问TKEStack容器平台
- 5.1 访问TKEStack首页
- 5.2 添加Global集群工作节点
- 5.3 查看Global集群工作节点
- 5.4 查看TKEStack首页概览
 
- 六、导入本地k8s集群
- 6.1 检查本地k8s集群状态
- 6.2 下载本地k8s集群kubeconfig文件
- 6.3 上传kubeconfig文件
- 6.4 查看导入集群状态
- 6.5 查看首页概览页面
 
- 七、部署wordpress应用
- 7.1 yaml创建资源
- 7.2 编写yaml部署文件
- 7.3 部署wordpress应用
- 7.4 检查工作负载状态
- 7.5 检查service状态
 
- 八、wordpress的初始化
- 8.1 进入wordpress的初始安装界面
- 8.2 设置网站信息
 
- 九、访问wordpress
- 9.1 访问wordpress首页
- 9.2 访问wordpress后台管理
 
一、TKEStack介绍
1.1 TKEStack简介
TKEStack是一个开源项目,为在生产中部署容器的组织提供容器管理平台。TKEStack让您可以轻松地在任何地方运行Kubernetes、满足 IT 要求并为DevOps团队提供支持。
1.2 TKEStack特点
- 统一集群管理
 用于集中管理多个 Kubernetes 集群的 Web 控制台和命令行客户端。
 与现有身份验证机制集成,包括LDAP、OIDC、前端代理和公共 OAuth 提供商(例如 GitHub)。
 统一的授权管理,不仅是集群管理层面,甚至是Kubernetes资源层面。
 多租户支持,包括容器、构建和网络通信的团队和用户隔离。
- 应用程序工作负载管理
 提供直观的 UI 界面来支持可视化和 YAML 导入以及其他资源创建和编辑方法,使用户无需预先学习所有 Kubernetes 概念即可运行容器。
 抽象的项目级资源容器,支持跨多个集群的多个命名空间管理和部署应用程序。
- 运维管理
 集成系统监控和应用程序监控。
 持久的 Kubernetes 事件和审核日志。
 限制、跟踪和管理平台上的开发人员和团队。
- 插件支持和管理
 身份验证身份提供者插件。
 授权提供商插件。
 事件持久存储插件。
 系统和应用程序日志持久存储插件。
 Galaxy(网络)、TApp(工作负载)、GPUManage(GPU)、CronHPA(HPA)、LBCF(负载平衡)
1.3 TKEStack架构图

二、kubernetes集群介绍
2.1 k8s简介
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。Kubernetes是一种开源的容器编排和管理平台,它可以帮助我们在分布式的环境中管理容器化的应用。Kubernetes可以让开发者和运维人员通过定义和管理Pod、Service、Deployment等资源来部署和管理应用程序,使得应用程序更易于部署、扩展和管理。
2.2 k8s架构图
kubernetes集群架构示意图

三、本次实践介绍
3.1 实践环境要求
TKEStack容器管理平台部署环境要求需按如下准备,由于是测试环境,本次部署节点的硬件配置略低于官方要求。
TKEStack部署环境要求如下:
- 硬件
 8 个虚拟CPU
 16 GB 内存
 100 GB 磁盘空间
- 操作系统
 ≥ Ubuntu 16.04/18.04 LTS(64 位)
 ≥ CentOS Linux 7.6(64 位)
 ≥Tencent Linux 2.2
3.2 本次实践环境规划
- TKEStack的Global集群
| hostname | IP地址 | 操作系统版本 | k8s版本 | 角色 | 
|---|---|---|---|---|
| master | 192.168.3.141 | centos7.9 | 1.21.4-tke.3 | master节点/TKEStack安装节点 | 
| node01 | 192.168.3.142 | centos7.9 | 1.21.4-tke.3 | worker节点 | 
| node02 | 192.168.3.143 | centos7.9 | 1.21.4-tke.3 | worker节点 | 
- 本地k8s集群
| hostname | IP地址 | 操作系统版本 | k8s版本 | 角色 | 
|---|---|---|---|---|
| k8s-master | 192.168.3.201 | centos7.6 | v1.27.4 | master节点 | 
| k8s-node01 | 192.168.3.202 | centos7.6 | v1.27.4 | worker节点 | 
| k8s-node02 | 192.168.3.203 | centos7.6 | v1.27.4 | worker节点 | 
3.3 本次实践简介
1.部署TKEStack容器管理平台;
2.在TKEStack容器管理平台部署wordpress应用。
四、安装容器管理平台
4.1 安装TKEStack
在master安装节点上,执行以下命令,Web GUI 将引导初始化并安装TKEStack 的Global集群和控制台。
# Choose installation package according to your installation node CPU architecture [amd64, arm64]
arch=amd64 version=v1.9.0 && wget https://tke-release-1251707795.cos.ap-guangzhou.myqcloud.com/tke-installer-linux-$arch-$version.run{,.sha256} && sha256sum --check --status tke-installer-linux-$arch-$version.run.sha256 && chmod +x tke-installer-linux-$arch-$version.run && ./tke-installer-linux-$arch-$version.run
在安装过程中需要耐心等待一段时间,出现以下提示时,表示TKEStack已经初步安装成功。

4.2 TKEStack基本设置
访问地址:http://192.168.3.141:8080/,进入TKEStack初始配置页面。在账户设置中,设置用户名和密码,高可用这里选择不设置。

4.3 集群设置
网卡名称:eth0
GPU类型:不使用
容器网络CIDR:10.0.0.0/14
master节点:192.168.3.141/ssh端口22/密码认证
其余默认,下一步即可。

4.4 认证设置
使用TKE提供的用户认证功能

4.5 镜像仓库设置
选择默认的TKE提供

4.6 业务设置
选择开启业务模块,默认是开启状态。

4.7 监控设置
监控存储类型:TKE提供。

4.8 控制台设置
默认设置即可。

4.9 配置预览
检查所有配置是否正确,点击安装。

4.10 开始安装
TKEStack初始化安装过程有点长,需要耐心等待安装完成即可。

出现以下界面,表示TKEStack容器管理平台安装完毕,

五、访问TKEStack容器平台
5.1 访问TKEStack首页
访问地址:https://192.168.3.141/,将IP替换为自己安装节点的IP地址。输入账号密码,进入TKEStack首页。


5.2 添加Global集群工作节点
在集群管理——global集群,点击进入global集群管理页面。


在global集群管理页面,点击节点管理——节点,选择添加节点。

填写目标机器信息:
目标机器:192.168.3.142
SSH端口:22
认证方式:密码认证
填写node01工作节点的root账号和密码,其余默认,保存即可。

按照以上配置,添加第二台工作节点node02,添加即可。

5.3 查看Global集群工作节点
等待节点初始化完成,看到各节点状态为正常Running状态即可。

5.4 查看TKEStack首页概览
查看TKEStack首页概览,可以看到当前资源概览和集群状态

六、导入本地k8s集群
6.1 检查本地k8s集群状态
检查本地k8s集群的工作节点状态
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES           AGE    VERSION
k8s-master   Ready    control-plane   120d   v1.27.4
k8s-node01   Ready    <none>          120d   v1.27.4
k8s-node02   Ready    <none>          120d   v1.27.4
检查本地k8s集群的系统pod状态
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS      AGE
calico-kube-controllers-85578c44bf-gw2km   1/1     Running   3 (88m ago)   120d
calico-node-8tts7                          1/1     Running   3 (88m ago)   120d
calico-node-fx8mv                          1/1     Running   3 (88m ago)   120d
calico-node-n8rt4                          1/1     Running   3 (88m ago)   120d
coredns-7bdc4cb885-5vgx8                   1/1     Running   3 (88m ago)   120d
coredns-7bdc4cb885-l22fj                   1/1     Running   3 (88m ago)   120d
etcd-k8s-master                            1/1     Running   4 (88m ago)   120d
kube-apiserver-k8s-master                  1/1     Running   4 (88m ago)   120d
kube-controller-manager-k8s-master         1/1     Running   4 (88m ago)   120d
kube-proxy-6vvw5                           1/1     Running   3 (88m ago)   120d
kube-proxy-867jg                           1/1     Running   3 (88m ago)   120d
kube-proxy-lgsc8                           1/1     Running   3 (88m ago)   120d
kube-scheduler-k8s-master                  1/1     Running   4 (88m ago)   120d
6.2 下载本地k8s集群kubeconfig文件
下载本地k8s集群kubeconfig文件,一般默认位置在~/.kube/config。
root@k8s-master ~# ls -l ~/.kube/config-rw------- 1 root root 5649 Aug  2 09:56 /root/.kube/config
6.3 上传kubeconfig文件
上传kubeconfig文件,提交即可。

6.4 查看导入集群状态
查看导入集群状态

6.5 查看首页概览页面
重新访问TKEStack首页概览页面,已经成功识别到导入的k8s集群及相关信息。

七、部署wordpress应用
7.1 yaml创建资源
在新导入的k8s集群my-k8s管理页面,点击yaml创建资源。


7.2 编写yaml部署文件
编写wordpress的yaml部署文件
---
apiVersion: v1
kind: Namespace
metadata:name: wordpress
---
apiVersion: v1
kind: Service
metadata:name: wordpressnamespace: wordpresslabels:app: wordpress
spec:ports:- protocol: TCPtargetPort: 80port: 80nodePort: 30020selector:app: wordpresstype: NodePort---apiVersion: apps/v1
kind: Deployment
metadata:name: wordpressnamespace: wordpresslabels:app: wordpress
spec:replicas: 2selector:matchLabels:app: wordpresstemplate:metadata:labels:app: wordpressspec:containers:- name: wordpressimage: wordpressports:- containerPort: 80env:- name: WORDPRESS_DB_HOSTvalue:  wordpress-mysql.wordpress.svc.cluster.local- name: WORDPRESS_DB_USERvalue: wordpress- name:  WORDPRESS_DB_PASSWORDvalue:  wordpressvolumeMounts:- mountPath: "/var/www/html"name: wordpress-datavolumes:- name: wordpress-datahostPath:path: /data/wordpress/data---apiVersion: v1
kind: Service
metadata:name: wordpress-mysqlnamespace: wordpresslabels:app: wordpress
spec:ports:- port: 3306type: ClusterIPselector:app: wordpresstier: mysql---apiVersion: apps/v1
kind: StatefulSet
metadata:name: wordpress-mysqlnamespace: wordpresslabels:app: wordpress
spec:replicas: 1selector:matchLabels:app: wordpresstier: mysqlserviceName: "wordpress-mysql"template:metadata:labels:app: wordpresstier: mysqlspec:
#      nodeSelector:
#        kubernetes.io/hostname: node01containers:- name: mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: wordpress- name: MYSQL_DATABASEvalue: wordpress- name: MYSQL_USERvalue:  wordpress- name: MYSQL_PASSWORDvalue:  wordpressports:- containerPort: 3306name: mysqlvolumeMounts:- mountPath: /var/lib/mysqlname: mysql-storagevolumes:- name: mysql-storagehostPath:path: /var/lib/mysql
7.3 部署wordpress应用
将yaml部署文件复制到编辑栏中,点击“完成”

7.4 检查工作负载状态
在TKEStack容器管理平台,查看wordpress命名空间下的Deployment资源状态。


7.5 检查service状态
在TKEStack容器管理平台,查看wordpress命名空间下的service状态。

可以看到wordpress应用的映射主机端口为30020

八、wordpress的初始化
8.1 进入wordpress的初始安装界面
访问地址:http://192.168.3.202:30020/wp-admin/install.php, 可以选择系统中文语言或者英语,这里是选择英语。

8.2 设置网站信息
自定义网站信息,设置网站名及网站管理员密码等信息。


九、访问wordpress
9.1 访问wordpress首页
访问地址:http://192.168.3.202:30020/

9.2 访问wordpress后台管理
后台管理地址:http://192.168.3.202:30020/wp-admin/
输入之前设置的管理员和密码,进入wordpress后台管理。

