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

k8s系列文章目录

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


文章目录

  • k8s系列文章目录
  • 一、安装mysql?
  • 二、安装WordPress
  • 三、配置NGINX调取器
  • 总结


一、安装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的结果如下
k8s学习系列文章一基于pod实现安装WordPress_第1张图片

总结

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

你可能感兴趣的:(k8s,nginx,docker,容器,devops)