说明:本次实验数据库采用mysql容器镜像容器化部署,博客采用开源wordpress镜像容器化部署
基础镜像准备
1. 使用docker拉取mysql数据库镜像,wordpress镜像,也可以在创建pod时自动拉取
2. 拉取成功后使用docker image ls查看拉取的镜像
1、命令行创建
kubectl create namespace shiyan
1.1、查看创建的命名空间
kubectl get namespace/kubectl get ns
2、使用yaml文件创建
2.1、创建一个目录,在此目录中创建所需要的yaml文件
mkdir -p /tmp/docker
cd /tmp/docker/
2.2、创建yaml文件
vim namespace.yaml
—
apiVersion: v1 #ns版本
kind: Namespace #类型为Namespace
metadata:
name: shiyan #命名空间名称
labels:
name: shiyan-v1
—
2.3、启动namespace的yaml文件
创建wordpress_mysql yaml文件
代码:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql #为该Deployment设置key为app,value为mysql的标签
name: mysql
namespace: shiyan
spec:
replicas: 1
selector: #标签选择器
matchLabels: #选择包含标签app:mysql的资源
app: mysql
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:mysql的Pod
app: mysql
spec: #pod中部署
containers: #生成container,与docker中的container是同一种
– name: mysql
image: mysql:latest #使用mysql镜像
ports:
– containerPort: 3306 #开启mysql容器的3306端口可访问
env: #设置环境变量
– name: MYSQL_ROOT_PASSWORD #环境变量名称,数据库root密码
value: redhat@123 #环境变量的值 这是mysqlroot的密码
– name: MYSQL_DATABASE
value: wpdb
– name: MYSQL_USER
value: redhat
– name: MYSQL_PASSWORD
value: redhat@123
volumeMounts:
– name: db
mountPath: /var/lib/mysql #设置数据库pod挂载路径
volumes:
– name: db #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
hostPath:
path: /var/lib/mysql #设置宿主机挂载目录
—
apiVersion: v1
kind: Service #类型
metadata:
name: mysql #service名称
namespace: shiyan
spec:
type: ClusterIP #service访问类型
selector:
app: mysql #标签选择器
ports:
– name: db-port
protocol: TCP
port: 3306
targetPort: 3306
2.1、启动yaml文件创建mysql服务
kubectl apply -f wordpress_mysql.yaml
2.2、查看mysql的pod信息
kubectl get pods mysql -n shiyan
2.3、查看mysql的svc地址,后面创建wordpress的yaml文件会用到
kubectl describe svc mysql -n shiyan
创建wordpress yaml文件
vim wordpress.yaml
代码:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: wordpress
name: wordpress
namespace: shiyan
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
– image: wordpress:latest
name: wordpress
ports:
– containerPort: 80
env:
– name: WORDPRESS_DB_NAME #指定数据库得名称
value: wpdb
– name: WORDPRESS_DB_USER #指定数据库的用户
value: redhat
– name: WORDPRESS_DB_PASSWORD #指定数据库用户的密码
value: redhat@123
– name: WORDPRESS_DB_HOST #指定数据库主机的IP地址
value: 10.96.231.141:3306 #此处使用mysql的yaml创建的svc的IP地址
—
apiVersion: v1
kind: Service
metadata:
name: wordpress
namespace: shiyan
spec:
type: NodePort
selector:
app: wordpress
ports:
– port: 80
targetPort: 80
protocol: TCP
3.1、启动yaml文件创建wordpress服务
kubectl apply -f wordpress.yaml
3.2、查看wordpress的pod信息
3.3、查看service的信息
kubectl get svc -n shiyan
访问测试
windows上访问集群中宿主机节点的IP:30272
如下图访问成功,即wordpress创建成功
4.1、输入相应的参数,点击安装wordpress即可
4.2、安装成功
4.3、登录wordpress
原文链接:https://www.jianshu.com/p/f98257b7da00