语法
apiVersion: v1 #必选,API 版本号
kind: Deployment #必选,Pod 类型:
metadata: #必选,元数据
name: nginx-deployment #必选,符合 RFC1035 规范的 Pod 名称
namespace: web #可选,不指定默认为 default,Pod 所在命名空间
spec: #必选,用于定义详细信息
selector: #标签选择器
matchLabels:
app: nginx
replicas: 2 #必选,Pod 副本数量
template:
metadata: #必选,元数据
labels: #可选,标签选择器,一般用于 Service Selector
app: nginx
spec: #必选,用于定义详细信息
containers: #必选,定义容器
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Pod
存储
使用 OSS 静态存储卷
https://help.aliyun.com/document_detail/86543.html
使用说明
配置OSS静态存储卷的说明如下:
- OSS为共享存储,可以同时为多个Pod提供共享存储服务。
- bucket:目前只支持挂载存储空间Bucket,不支持挂载Bucket下面的子目录或文件。
- url:OSS的Endpoint,挂载OSS的接入域名,挂载节点和存储空间的地域相同时,可使用内网地址。
- akId:您的AccessKey ID值。
- akSecret:您的AccessKey Secret值。
- otherOpts:挂载OSS时支持定制化参数输入,格式为:-o *** -o ***。
- 您在使用OSS数据卷时,不要使用subpath的配置。
- 
注意事项
- OSS数据卷是使用OSSFS文件进行挂载的FUSE文件系统,适合于读文件场景。例如:读配置文件、视频、图片文件等场景。 
- OSSFS不擅长于写文件的应用场景。如果您的业务是将文件写入存储的场景,推荐使用NAS存储卷服务。
- 内核态文件系统相较于用户态模拟的文件系统,在稳定性、性能上更具有优势,生产环境中推荐您使用NAS文件存储,而不推荐OSS文件系统
- OSSFS可以通过调整配置参数的方式,优化其在缓存、权限等方面的表现,请参见常见问题、ossfs/README-CN.md、FAQ。
直接使用volumes挂载的方式创建并复制以下内容到oss-deploy.yaml中。
 执行以下命令,创建Pod。- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: nginx-oss-deploy
- spec:
- replicas: 1
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx-flexvolume-oss
- image: nginx
- volumeMounts:
- - name: "oss1"
- mountPath: "/data"
- livenessProbe:
- exec:
- command:
- - sh
- - -c
- - cd /data
- initialDelaySeconds: 30
- periodSeconds: 30
- volumes:
- - name: "oss1"
- flexVolume:
- driver: "alicloud/oss"
- options:
- bucket: "docker"
- url: "oss-cn-hangzhou.aliyuncs.com"
- akId: ***
- akSecret: ***
- otherOpts: "-o max_stat_cache_size=0 -o allow_other"
 - kubectl apply -f oss-deploy.yaml
 使用创建PV和PVC的方式您可以使用YAML文件或者通过容器服务控制台界面创建PV。创建PV使用oss-pv.yaml文件创建PV。- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: pv-oss
- spec:
- capacity:
- storage: 5Gi
- accessModes:
- - ReadWriteMany
- storageClassName: oss
- flexVolume:
- driver: "alicloud/oss"
- options:
- bucket: "docker"
- url: "oss-cn-hangzhou.aliyuncs.com"
- akId: ***
- akSecret: ***
- otherOpts: "-o max_stat_cache_size=0 -o allow_other"
 创建PVC使用oss-pvc.yaml文件创建PVC。- kind: PersistentVolumeClaim
- apiVersion: v1
- metadata:
- name: pvc-oss
- spec:
- storageClassName: oss
- accessModes:
- - ReadWriteMany
- resources:
- requests:
- storage: 5Gi
 创建Pod使用oss-deploy.yaml创建Pod。
 https://help.aliyun.com/document_detail/130911.html- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: oss-static
- labels:
- app: nginx
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: nginx
- template:
- metadata:
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx
- ports:
- - containerPort: 80
- volumeMounts:
- - name: pvc-oss
- mountPath: "/data"
- livenessProbe:
- exec:
- command:
- - sh
- - -c
- - cd /data
- initialDelaySeconds: 30
- periodSeconds: 30
- volumes:
- - name: pvc-oss
- persistentVolumeClaim:
- claimName: pvc-oss
 使用 NAS 动态存储卷创建动态 NAS 卷配置 StorageClass。配置示例如下: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas mountOptions:
- nolock,tcp,noresvport
- vers=3 parameters: server: “23a9649583-iaq37.cn-shenzhen.nas.aliyuncs.com:/nasroot1/“ driver: flexvolume provisioner: alicloud/nas reclaimPolicy: Delete ``` 说明 
- mountOptions:表示生成的PV options配置,挂载NAS卷时使用这个options挂载。 
- server:表示生成目标PV所使用NAS挂载点列表。格式为 nfsurl1:/path1,nfsurl2:/path2;当配置多个server时,通过此StorageClass创建的PV会轮询使用上述server作为配置参数;极速NAS配置路径需要以/share开头。
- driver:支持Flexvolume、NFS两种驱动,默认为NFS。
- reclaimPolicy:PV的回收策略,建议配置为Retain。
apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: serviceName: “nginx” replicas: 5 volumeClaimTemplates:
- metadata:
  name: html
spec:
  accessModes:
 storageClassName: alicloud-nas resources:- - ReadWriteOnce
 
 template: metadata: labels:- requests:
- storage: 2Gi
 
 spec: containers:- app: nginx
 - name: nginx
image: nginx:alpine
volumeMounts:- mountPath: “/data” name: html ```
 
 
 
                         
                                

