**本例使用emptyDir卷类型,用于存储临时数据的简单空目录。
图解:pod内

在这里插入图片描述
1.为安装fortune命令,用Dockerfile自定义镜像**

[root@k8s-node1 ~]#mkdir build
[root@k8s-node1 ~]#cd build
[root@k8s-node1 build]# vim fortuneloop.sh
#!/bin/bash
trap "exit" SIGINT
mkdir /var/htdocs
while:
do
        echo $(date) Writing fortune to /var/htdocs/index.html
        /usr/games/fortune > /var/htdocs/index.html
        sleep 10
done
[root@k8s-node1 build]# vim Dockerfile
FROM ubuntu:latest
RUN apt-get update; apt-get -y install fortune
ADD fortuneloop.sh /bin/fortuneloop.sh
ENTRYPOINT /bin/fortuneloop.sh
[root@k8s-node1 build]# docker build -t luksa/fortune .

2.yaml创建pod和service(请把注释删除再创建)

---
 apiVersion: v1
 kind: Pod
 metadata:
   name: fortune
   lable:
     app: fortune
 spec:
   containers:
     - name: html-generator 
       image: luksa/fortune
       imagePullPolicy: IfNotPresent
       volumeMounts:                      # 名为html的卷挂载在容器的/var/htdocs中
       - name: html
         mountPath: /var/htdocs
     - name: web-server
       image: nginx:alpine                # 与上面相同的卷挂载在/usr/share/nginx/html
       imagePullPolicy: IfNotPresent
       volumeMounts:
       - name: html
         mountPath: /usr/share/nginx/html
         readOnly: true                   # 该容器对卷内容只读
       ports:
       - containerPort: 80
         protocol: TCP
   volumes:                                 # 一个名为html的单独emptyDir卷,挂载在上面的两个容器中
   - name: html                            # 理解为在pod中建立一个创建一个文件系统提供给容器挂载
     emptyDir: {}

#运作流程:fortune往html卷写入数据,web-server从html读取数据
---
apiVersion: v1
kind: Service
metadata:
  name: fortune-svc	# 服务名
spec:
  ports:
  - port: 80  		# 该服务监听端口端口
    targetPort: 80  	# 服务将连接转发到pod中匹配容器声明的端口
    nodePort: 30008
  type: NodePort
  selector:
    app: fortune   	# 具有app=fortune标签的pod都隶属于该服务

# 创建了一个名叫fortune-svc的服务,它将在端口80接收请求并将连接路由到具有标签选择器是app=fortune的pod的80端口

验证(每10秒更新index页面,ip可指定集群任一节点ip,包括主节点)
浏览器访问:http://<ip>:30008
卷的内容会存储在pod所在节点上,如果想要卷的内容存储在内存中可如下修改:

volumes:
- name: html
  emptyDir:
    medium: Memory  # emptyDIr中文件将会存储在内存中
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐