k8s学习系列文章一基于pod实现安装WordPress

k8s系列文章目录

基于k8s构建WordPress可以快速且能实现资源的弹性伸缩,自动服务发现,自动故障监测。下面以一个master节点两个node节点的k8s节点实现WordPress。



一、安装mysql?


  1. 编写对应的名称空间配置清单
apiVersion: v1
kind: Namespace
metadata:
  name: app
  1. 创建在同一名称空间下mysql的pod。
apiVersion: v1
kind: Pod
metadata: 
  name: mysql
  namespace: app
  labels:
    app: mysql
spec:
  containers:
  - name: mysql
    image: "mysql:latest"
    ports: 
    - containerPort: 3306
      name: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: logn
    - name: MYSQL_DATABASE
      value: wordpress
    - name: MYSQL_USER
      value: wpuser
    - name: MYSQL_PASSWORD
      value: wppasswd

mysql的pod无需暴露端口到宿主机 WordPress Pod可以通过pod网络直接访问mysql。

二、安装WordPress

为了降低入门的复杂度,故使用WordPress中的官方镜像并部署在pod中。


  1. 编写对应的pod配置清单
apiVersion: v1
kind: Pod
metadata:
  name: "web"
  namespace: app
  labels:
    app: "wordpress"
spec: 
  hostNetwork: true
  containers:
  - name: wordpress
    image: "wordpress:latest"
    ports:
    - containerPort:  80
      name:  http
    env:
    - name: WORDPRESS_DB_HOST
      value: 10.244.
    - name: WORDPRESS_DB_USER
      value: wpuser
    - name: WORDPRESS_DB_PASSWORD
      value: wppasswd
    - name: WORDPRESS_DB_NAME
      value: wordpress
    - name: WORDPRESS_TABLE_PREFIX
      value: wp_

配置文件中定义了hostNetwork 共享宿主机的网络名称空间 以便nginx调度器访问。并在WORDPRESS_DB_HOST中使用mysql的pod网络地址。可以使用kubectl get -n app mysql -o wide获取

三、配置NGINX调取器

  1. yum安装配置NGINX
vim /etc/nginx/nginx.conf
stream{
    upstream web {
        server 10.0.2.1:80;
        server 10.0.2.2:80;
    }
    server {
        listen 80;
        proxy_pass web;
    }
}
#注释默认的web站点防止端口冲突
#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

访问NGINX的结果如下
在这里插入图片描述

总结

mysql和WordPress镜像的env参数可以在官方文档中查找到。
注意:在pod中无法访问不是本机的其他宿主机 因此mysql共用宿主机地址时无法通过宿主机地址访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值