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核心技术概念二的主要内容,如果未能解决你的问题,请参考以下文章

k8s 就是这么简单!一文看懂其核心概念!

k8s 就是这么简单!一文看懂其核心概念!

k8s入门之虚拟化技术基本概念

AMD二代霄龙实测:双路128核心256线程无情碾压

Kubernetes核心模块

Kubernetes核心模块