k8s核心技术概念二
Posted freshmans
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s核心技术概念二相关的知识,希望对你有一定的参考价值。
volume
volume是pod中能被多个容器访问的共享目录,k8s中的volume与pod生命周期相同,当容器终止或重启时,volume中的数据不会丢失。示例
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: frontend spec: replicas: 1 selector: matchLabels: tier: frontend matchExpressions: - {key: tier,operator: In,values: [frontend]} template: metadata: labels: app: app-demo tier: frontend spec: volumes: - name: datavo1 emptyDir: {} containers: - name: tomcat-demo image: consol/tomcat-7.0 imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /mydata-data name: datavo1 ports: - containerPort: 8080
emptyDir:
empytDir volume是在pod分配到node的时创建的,初始内容为空,并且无需指定主机上对应的目录文件(k8s自动分配),当 pod从node上移除时,emptyDir中的数据也会被永久删除
hostPath:
hostPath为在pod上挂载宿主机上的文件或目录
NFS:
使用nfs网路文件系统存储数据,需要部署一个nfs server,如下:
PV(Persistent Volume) 网络存储:
Namespace命名空间
Namespce在很多情况下实现了多租户的资源隔离,通过将集群内部的资源对象分配到不同的namespace中,形成逻辑上分组的不同项目、小组或用户组,便于区分管理
k8s启动后,默认创建一个名为“default”的namespace,通过kubectl命令可查看,用户创建的资源对象,默认放到default命名空间中
kubectl get namespaces #获取命名空间
kubectl get pods(service、rc ) --namespace=<namespace名称> #获取指定命名空间的资源
Annotation
Annotation与label类似,也是用key=value键值对的形式进行定义,不同的是,lable有严格的命名规则,定义的对象为元数据(metadata)并且用于label selector,而Annotation 是用户定义的任意附加信息
- build信息、release信息、docker镜像信息。如时间戳、release id号,docker registry地址
- 日志库、监控库、分析库等资源库地址
- 程序调试工具信息
- 团队联系信息
以上是关于k8s核心技术概念二的主要内容,如果未能解决你的问题,请参考以下文章