运维训练营第 14 周作业
作业:
1、wordpress 示例中:
(1)使用 statefulset 编排运行 mysql,实例数为 1;
(2)换成使用 Operator 编排运行 mysql,实例数为 1+;
(3)将 mysql 以传统模型的主从复制的形式运行于 Kubernetes 外部,让运行在 Kubernetes 集群上的 wordpress 去访问外部的 MySQL 服务;
2、wordpress 实例扩展至多个,测试应用是否工作正常;
3、Nginx 实例扩展至多个,测试应用是否工作正常;额外为 nginx 添加 https 虚拟主机;
使用 statefulset 编排运行 mysql
目前是通过 Deployment 的 replicaset 来控制的 mysql。
代码里的 kind 之前写的是 Deployment:
运行起来后,具体的情况是:
可以修改为 statefulset 的方式,通过把 kind 修改为 StatefulSet 的方式即可,运行结果如下:
Opeartor 编排运行 mysql
下载官方的 operator 即可。
https://github.com/mysql/mysql-operator
然后 k apply -f deploy-crds.yaml
再 k apply -f deploy-operator.yaml
就部署了 mysql 了,非常方便。
mysql 以传统模型的主从复制形式运行于 k8s 外部
k8s 可以通过 headless 的 service 来访问集群外的资源。
比如把 mysql 部署在服务器 172.29.7.9 上,那么 mysql.yaml 如下:
kind: Service
apiVersion: v1
metadata:
name: mysql-svc
spec:
clusterIP: None
selector:
app: mysql
ports:
- port: 3306
targetPort: 3306
name: http
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysql
namespace: default
subsets:
- addresses:
- ip: 172.29.7.9
ports:
- name: mysql
port: 3306
protocol: TCP
另一台机器安装 mysql:
装好 mysql 后,可以查看 mysql 的状态。
配置好之后,就可以看到 svc 和 endpint 都已经配置了。
wordpress 实例扩展
只需要在 wordpress 的 deployment 里,把 replica 修改为 3 就可以了。
修改后会新部署 2 个 wordpress 的 pod。
nginx 实例扩展
只需要在 nginx 的 deployment 里,把 replica 修改为 3 就可以了。
部署后,会出现新的 2 个 pod。
而且可以看到 nginx 的 3 个 Pod 分别在不同的 node 上。
测试 wordpress,还是可以访问的。
评论