k3s高级教程:文件夹共享挂载和启动命令替换

前言


 

如果你之前看过锋哥的k3s初级教程,那么你一定掌握了如何快速安装,并体验kubernetes, 接下来,可以试着学习稍微复杂一点的操作了。

挂载host文件夹共享文件

一般来说,我们把应用,软件容器化之后,还是需要挂载一些文件到容器里,不可能把所有内容都打包到容器里面,那么这个挂载host主机上的文件夹,就成了一个比较基本的操作了,大家可以学习一下。

下面是一个deploy配置文件,注意看volumeMounts和volumes配置字段。

volues定义了可供挂载的host 主机目录

volumeMounts 定义了要挂载到容器的哪个目录下面

就本示例而言:是把宿主机的路径/home/www/gw.netroby.com挂载到容器内的/usr/share/nginx/html

你可以根据需要改成自己的配置,然后用kubectl 部署

# cat deploy.yml 
apiVersion: apps/v1beta1
kind: Deployment
metadata:
 name: nginx-deployment
spec:
 replicas: 2 # tells deployment to run 2 pods matching the template
 template: # create pods using pod definition in this template
 metadata:
 # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
 # generated from the deployment name
 labels:
 app: nginx
 spec:
 containers:
 - name: nginx
 image: nginx:1.7.9
 ports:
 - containerPort: 80
 volumeMounts:
 - mountPath: /usr/share/nginx/html
 name: ngxvol
 volumes:
 - name: ngxvol
 hostPath: 
 path: /home/www/gw.netroby.com
 type: Directory

替换启动参数

有时候我们需要替换默认的容器启动参数,需要掌握的两个配置字段,一个是command,一个是args

command,指定了要执行的命令(可以是一个程序,可以是一个shell脚本)

args 指定了启动参数,多个参数,用数组的形式表达

apiVersion: v1
kind: Pod
metadata:
 name: memory-demo
 namespace: mem-example
spec:
 containers:
 - name: memory-demo-ctr
 image: polinux/stress
 resources:
 limits:
 memory: "200Mi"
 requests:
 memory: "100Mi"
 command: ["stress"]
 args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

参考文档

如果想更多的了解相关知识,请查阅参考文档

https://kubernetes.io/docs/reference/kubectl/cheatsheet/

https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

分类: 服务器/VPS/云 标签: 发布于: 2020-12-26 16:26:57, 点击数: