大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习 Kubernetes😊
Kubernetes 搭建 WordPress
使用 ConfigMap定义 MariaDB 的环境变量,所以定义一个 maria-cm 对象:
apiVersion: v1
kind: ConfigMap
metadata:
name: maria-cm
data:
DATABASE: 'db'
USER: 'wp'
PASSWORD: '123'
ROOT_PASSWORD: '123'
kubectl apply -f maria-cm.yml 创建 maria-cm 对象
定义 Pod 对象 maria-pod ,把配置信息注入 Pod:
apiVersion: v1
kind: Pod
metadata:
name: maria-pod
labels:
app: wordpress
role: database
spec:
containers:
- image: mariadb:10
name: maria
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
envFrom:
- prefix: 'MARIADB_'
configMapRef:
name: maria-cm
使用 kubectl apply -f maria-pod.yml 创建 maria-pod 对象
kubectl get pod -o wide 查看 pod 的 IP 地址
接着定义 WordPress 的配置,HOST 里面填写的是 MariaDB Pod 的 IP 地址:
apiVersion: v1
kind: ConfigMap
metadata:
name: wp-cm
data:
HOST: '172.17.0.2'
USER: 'wp'
PASSWORD: '123'
NAME: 'db'
创建 wp-cm 对象:kubectl apply -f wp-cm.yml
编写 WordPress 的 YAML:
apiVersion: v1
kind: Pod
metadata:
name: wp-pod
labels:
app: wordpress
role: website
spec:
containers:
- image: wordpress:5
name: wp-pod
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
envFrom:
- prefix: 'WORDPRESS_DB_'
configMapRef:
name: wp-cm
创建对象:
kubectl apply -f wp-pod.yml
kubectl get pod -o wide
映射端口号,让它在集群外可见,因为 Pod 都是运行在 Kubernetes 内部的私有网段里的,外界无法直接访问,想要对外暴露服务,需要使用一个专门的 kubectl port-forward 命令,它专门负责把本机的端口映射到在目标对象的端口号,有点类似 Docker 的参数 -p,经常用于 Kubernetes 的临时调试和测试
本地的“8080”映射到 WordPress Pod 的“80”,kubectl 会把这个端口的所有数据都转发给集群内部的 Pod:
kubectl port-forward wp-pod 8080:80 &
此文章为3月Day15学习笔记,内容来源于极客时间《Kubernetes 入门实战课》 这门课真的非常好,推荐大家看看