美文网首页
6.k8s 单个Pod运行多个容器实现基于LNMP的WordPr

6.k8s 单个Pod运行多个容器实现基于LNMP的WordPr

作者: 哆啦A梦_ca52 | 来源:发表于2019-12-12 12:33 被阅读0次
删除pod
root@master:/opt/k8s-data/yaml/web/linux37/tomcat-app1# kubectl delete -f tomcat-app1.yaml 
deployment.extensions "linux37-tomcat-app1-deployment" deleted
root@master:/opt/k8s-data/yaml/web/linux37/tomcat-app2# kubectl delete -f tomcat-app2.yaml 
root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl delete -f nginx.yaml
root@master:/opt/k8s-data/yaml/linux37/zookeeper# kubectl delete -f zookeeper.yaml 
root@master:/opt/k8s-data/yaml/linux37/zookeeper/pv# kubectl delete -f .
root@master:/opt/k8s-data/yaml/linux37/jenkins# kubectl delete -f .
root@master:/opt/k8s-data/yaml/linux37/jenkins/pv# kubectl delete -f .
root@master:/opt/k8s-data/yaml/linux37/dubbo# kubectl delete -f dubboadmin/dubboadmin.yaml 
root@master:/opt/k8s-data/yaml/linux37/dubbo# kubectl delete -f provider/provider.yaml 
root@master:/opt/k8s-data/yaml/linux37/dubbo# kubectl delete -f consumer/consumer.yaml 
root@master:/opt/k8s-data/yaml/linux37# kubectl delete -f redis/pv/redis-persistentvolume.yaml 
root@master:/opt/k8s-data/yaml/linux37/redis# kubectl delete -f redis.yaml 
修改build镜像
root@master:/opt/k8s-data/dockerfile/linux37/wordpress/php# vim build-command.sh 
#!/bin/bash
TAG=$1
docker build -t harbor.wyh.net/linux37/wordpress-php-5.6:${TAG} .
echo "镜像制作完成,即将上传至Harbor服务器"
sleep 1
docker push harbor.wyh.net/linux37/wordpress-php-5.6:${TAG}
echo "镜像上传完成"
修改dockerfile地址
root@master:/opt/k8s-data/dockerfile/linux37/wordpress/php# vim Dockerfile 
#PHP Base Image
FROM harbor.wyh.net/baseimages/centos:7.6.18102     
MAINTAINER  zhangshijie@wyh.net
RUN yum install -y  https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm && yum install  php56-php-fpm php56-php-mysql -y
ADD www.conf /opt/remi/php56/root/etc/php-fpm.d/www.conf
ADD run_php.sh /usr/local/bin/run_php.sh
EXPOSE 9000
打php镜像 版本为v1
root@master:/opt/k8s-data/dockerfile/linux37/wordpress/php# bash build-command.sh v1
镜像制作完成,即将上传至Harbor服务器
The push refers to repository [harbor.wyh.net/linux37/wordpress-php-5.6]
按照日期打nginx基础镜像
root@master:/opt/k8s-data/dockerfile/web/linux37/nginx# bash build-command.sh 2019_10_12_17-36-30
按照版本打镜像
root@master:/opt/k8s-data/dockerfile/web/linux37/nginx# bash build-command.sh v1.16.1
修改镜像地址
root@master:/opt/k8s-data/dockerfile/linux37/wordpress/nginx# vim Dockerfile 
#Nginx Base Image
#FROM harbor.wyh.net/pub-images/nginx-base:v1.14.2 
FROM harbor.wyh.net/linux37/nginx:v1.16.1
ADD nginx.conf /apps/nginx/conf/nginx.conf
ADD run_nginx.sh /apps/nginx/sbin/run_nginx.sh
RUN mkdir -pv /home/nginx/wordpress
RUN chown nginx.nginx /home/nginx/wordpress/ -R
EXPOSE 80 443
CMD ["/apps/nginx/sbin/run_nginx.sh"]

root@master:/opt/k8s-data/dockerfile/linux37/wordpress/nginx# chmod a+x *.sh
修改build文件
root@master:/opt/k8sdata/dockerfile/linux37/wordpress/nginx# vim build-command.sh 
#!/bin/bash
TAG=$1
docker build -t harbor.wyh.net/linux37/wordpress-nginx:${TAG} .
echo "镜像制作完成,即将上传至Harbor服务器"
sleep 1
docker push  harbor.wyh.net/linux37/wordpress-nginx:${TAG}
echo "镜像上传完成"

root@master:/opt/k8s-data/dockerfile/linux37/wordpress/nginx# bash build-command.sh v1
创建共享目录
root@haproxy1:~# mkdir /data/k8sdata/linux37/wordpress
编辑pod地址
root@master:/opt/k8s-data/yaml/linux37/wordpress# cat  wordpress.yaml  | grep ^[^#]
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
  app: wordpress-app
name: wordpress-app-deployment
namespace: linux37
spec:
replicas: 1
selector:
  matchLabels:
    app: wordpress-app
template:
  metadata:
    labels:
      app: wordpress-app
  spec:
    containers:
    - name: wordpress-app-nginx
      image: harbor.wyh.net/linux37/wordpress-nginx:v1
      imagePullPolicy: Always
      ports:
      - containerPort: 80
        protocol: TCP
        name: http
      - containerPort: 443
        protocol: TCP
        name: https
      volumeMounts:
      - name: wordpress
        mountPath: /home/nginx/wordpress
        readOnly: false
    - name: wordpress-app-php
      image: harbor.wyh.net/linux37/wordpress-php-5.6:v1 
      #command: ["/apps/tomcat/bin/run_tomcat.sh"]
      #imagePullPolicy: IfNotPresent
      imagePullPolicy: Always
      ports:
      - containerPort: 9000
        protocol: TCP
        name: http
      volumeMounts:
      - name: wordpress
        mountPath: /home/nginx/wordpress 
        readOnly: false
    volumes:
    - name: wordpress
      nfs:
        server: 192.168.200.201
        path: /data/k8sdata/linux37/wordpress 
---
kind: Service
apiVersion: v1
metadata:
labels:
  app: wordpress-app
name: wordpress-app-spec
namespace: linux37
spec:
type: NodePort
ports:
- name: http
  port: 80
  protocol: TCP
  targetPort: 80
  nodePort: 30031
- name: https
  port: 443
  protocol: TCP
  targetPort: 443
  nodePort: 30033
selector:
  app: wordpress-app

创建pod
root@master:/opt/k8s-data/yaml/linux37/wordpress# kubectl apply -f wordpress.yaml 
查看
root@master:/opt/k8s-data/yaml/linux37/wordpress# kubectl get pod -n linux37 | grep wor
wordpress-app-deployment-6dc675bf58-zmnzq        2/2     Running       0          2m26s
查看pod里是否挂在上
[root@wordpress-app-deployment-6dc675bf58-zmnzq wordpress]# df -Th | grep 192
192.168.200.201:/data/k8sdata/linux37/wordpress nfs4      98G  7.4G   86G   8% /home/nginx/wordpress
编写php测试页
root@haproxy1:/data/k8sdata/linux37/wordpress# vim linux37.php
<?php
   phpinfo();
?>
修改php权限
[root@wordpress-app-deployment-6dc675bf58-zmnzq wordpress]# chown nginx.nginx linux37.php 

访问php页面


image.png
image.png

解压wordpress

root@haproxy1:/data/k8sdata/linux37/wordpress# tar xf wordpress-5.0.2-zh_CN.tar.gz 
移动不重要的文件
root@haproxy1:/data/k8sdata/linux37/wordpress# mv wordpress wordpress-5.0.2-zh_CN.tar.gz /tmp/

相关文章

  • 6.k8s 单个Pod运行多个容器实现基于LNMP的WordPr

    访问php页面 解压wordpress

  • docker-compose 一键构建LNMP

    lnmp lnmp的容器编排。 实现对多个容器的编排:nginx、mysql、php-fpm。支持一键构建启动和销...

  • Kubernetes 0-1 了解Pod

    Pod介绍 Pod,是K8S对象模型中的最小单元,Pod里面包含着一组容器(单个容器或多个紧密耦合的容器),这时候...

  • K8S资源对象简介

    一、资源简介 1.1 Pod pod是k8s中的最小单元。 一个pod中可以运行一个容器,也可以运行多个容器。 运...

  • Kubernetes:Pod剖析

    一. 简介 Pod,是 Kubernetes 项目中最小的 API 对象。一个Pod里面可以运行多个用户容器,容器...

  • 2020-07-26【K8S一些总结 】

    Pod Pod的组成 ? 每个Pod都有一个Pause容器和多个业务容器。多个业务容器共享Pause容器的IP和V...

  • k8s重要概念

    多个 Pod 之间如何通信? 一个应用可以产生多个副本运行在多个 Pod 上,以实现高可用。这些 Pod 通过Se...

  • Kubernetes 中的Init 容器

    一 、理解 Init 容器 我们知道Pod能够具有多个容器,应用运行在容器里面,但是它也可能有一个或多个先于应用容...

  • pipeline项目中源代码变更自动触发构建

    之前pipeline运行在pod中,基于jenkins kubernates的插件,在pod中实现 下载源码---...

  • DOCKER最佳实践

    让镜像保持小巧 容器只运行单个应用。 从技术角度讲,你可以在Docker容器中运行多个进程。你可以将数据库,前端,...

网友评论

      本文标题:6.k8s 单个Pod运行多个容器实现基于LNMP的WordPr

      本文链接:https://www.haomeiwen.com/subject/gbgegctx.html