《Kubernetes 入门实战课》 学习笔记 day7

166 阅读2分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 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 入门实战课》 这门课真的非常好,推荐大家看看