首页 > 其他分享 >Kubernetes-部署WordPress

Kubernetes-部署WordPress

时间:2022-12-23 22:24:24浏览次数:42  
标签:kubectl name Kubernetes 部署 WordPress wp pod Pod

回顾

Kubernetes把集群里的计算资源定义为节点(Node),其中又划分成控制面和数据面两类。

  • 控制面是Master节点,负责管理集群和运维监控应用,里面的核心组件是apiserver、etcd、scheduler、controller-manager。
  • 数据面是Worker节点,受Master节点的管控,里面的核心组件是kubelet、kube-proxy、container-runtime。

WordPress 网站搭建步骤

第一步:

定义一个maria-cm对象:

apiVersion: v1
kind: ConfigMap
metadata:
  name: maria-cm

data:
  DATABASE: 'db'
  USER: 'wp'
  PASSWORD: '123'
  ROOT_PASSWORD: '123'

把配置信息注入Pod,让MariaDB运行时从环境变量读取这些信息:

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

这里使用“envFrom”,这是因为ConfigMap里的信息比较多,如果用env.valueFrom一个个地写会非常麻烦,容易出错,而envFrom可以一次性地把ConfigMap里的字段全导入进Pod,并且能够指定变量名的前缀,非常方便。

kubectl apply -f mariadb-pod.yml
kubectl get pod -o wide

第二步:

编排WordPress对象的ConfigMap定义它的环境变量

apiVersion: v1
kind: ConfigMap
metadata:
  name: wp-cm

data:
  HOST: '172.17.0.2'
  USER: 'wp'
  PASSWORD: '123'
  NAME: 'db'

HOST字段必须是MariaDB Pod的IP地址

再编写WordPress的YAML文件

apiVersion: v1
kind: Pod
metadata:
  name: wp-pod
  labels:
    name: wp-pod
    labels:
      app: wordpress
      role: website

spec:
  containers:
  - image: wordpress:5
    name: wp-pod
    iamgePullPolicy: IfNotPresent
    ports:
    - containerPort: 80

    envFrom
    - prefix: 'WORDPRESS_DB_'
      configMapRef:
        name: wp-cm
kubectl apply -f wp-pod.yml
kubectl get pod -o wide

第三步

WordPress Pod映射端口号,让它在集群外可见。

kubectl port-forward命令,它专门负责把本机的端口映射到在目标对象的端口号,用于Kubernetes的临时调试和测试。

下面我就把本地的“8080”映射到WordPress Pod的“80”,kubectl会把这个端口的所有数据都转发给集群内部的Pod:

kubectl port-forward wp-pod 8080:80 &
# &符号,让端口转发工作在后台进行,不会阻碍我们后续的操作。如需关闭端口转发,需要敲命令fg,它会把后台的任务带回到前台,使用“Ctrl+C”来停止转发

第四步

因为WordPress网站使用了URL重定向,直接使用“8080”会导致跳转故障,所以为了让网站正常工作,我们还应该在Kubernetes之外启动Nginx反向代理,保证外界看到的仍然是“80”端口号。

Nginx的配置文件

server {
  listen 80;
  default_type text/html;
  
  location / {
      proxy_http_version 1.1;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:8080;
}
}

然后我们用docker run -v命令加载这个配置文件,以容器的方式启动这个Nginx代理

docker run -d --rm \
    --net=host \
    -v /tmp/proxy.conf:/etc/nginx/conf.d/default.conf \
    nginx: alpine

有了Nginx的反向代理之后,可以访问服务了

本例子仅用于学习

标签:kubectl,name,Kubernetes,部署,WordPress,wp,pod,Pod
From: https://www.cnblogs.com/zsjlovewm/p/17001739.html

相关文章

  • # Win10为知笔记Docker镜像部署 -v /wiz/storage问题解决
    Win10为知笔记Docker镜像部署-v/wiz/storage问题解决用了很长一段时间的为知笔记,客户端体验还行,服务端笔记同步体验不佳。准备用Docker自己搭一个服务端。环境:操作......
  • Kubernetes-ConfigMap/Secret
    想让业务更顺利地运行,有一个问题不容忽视,那就是应用的配置管理。Kubernetes里专门用来管理配置信息的两种对象:ConfigMap和Secret,使用它们来灵活地配置、定制我们的应用。C......
  • kubernetes-Job/CronJob
    离线任务“离线业务”可以分为两种。一种是“临时任务”,跑完就完事,下次有需求了说一声再重新安排;另一种是“定时任务”,可以按时按点周期运行,不需要过多干预。这分别对应了......
  • web部署
    1.部署过程在华为云openEuler安装后,没有配置yum源,我们通过重新配置。cd/etc/yum.repos.dviopenEuler_x86_64.repo增加下面内容:[OS]name=OSbaseurl=http://repo.o......
  • 使用PM2将egg.js部署到服务上
    使用PM2将egg.js部署到服务上服务器安装环境Node.jsPM2pm2部署步骤npminstallpm2-gegg.js部署步骤npminitegg--type=simple修改默认端口找到config目录下的conf......
  • 从Spring Tool Suite(STS)将“hello world”Spring应用程序部署到Cloud Foundry的过程
    本指南将引导您完成从SpringToolSuite(STS)将“helloworld”Spring应用程序部署到CloudFoundry的过程。您将部署到CloudFoundry的内容您将在CloudFoundry部署一个Spri......
  • 使用docker-compose部署kafka
    1、拉取镜像dockerpullbitnami/zookeeper:latestdockerpullbitnami/kafka:latest2、下载docker-composecurl-Lhttps://get.daocloud.io/docker/compose/releases/down......
  • K8S部署分3节点es
    [root@master~]#cates.yamlapiVersion:v1kind:Servicemetadata:name:elasticsearch7namespace:elasticsearchlabels:app:elasticsearch7spec:ports:......
  • Kubernetes控制器的工作原理
    Kubernetes的核心就是控制理论,Kubernetes控制器中实现的控制回路是一种闭环反馈控制系统,该类型的控制系统基于反馈回路将目标系统的当前状态与预定义的期望状态相比较,二者......
  • Kubernetes控制器的工作原理
     Kubernetes的核心就是控制理论,Kubernetes控制器中实现的控制回路是一种闭环反馈控制系统,该类型的控制系统基于反馈回路将目标系统的当前状态与预定义的期望状态相比较,......