当前位置: 首页 > news >正文

云南住房与城乡建设厅网站网站SEO优化实训

云南住房与城乡建设厅网站,网站SEO优化实训,系统网站建设ppt模板,怎样开发网站建设目录 序言 1.Volume 简单介绍 2 Projected Volume 介绍 2.1 Secret 2.1.1 yaml讲解 2.1.2 创建Pod 2.2 Downward API 2.2.1 yaml示例 2.2.2 Downward API 支持字段 3 投票 序言 任何一件事情#xff0c;只要坚持六个月以上#xff0c;你都可以看到质的飞跃。 在…目录 序言 1.Volume 简单介绍 2 Projected Volume 介绍 2.1 Secret 2.1.1 yaml讲解 2.1.2 创建Pod  2.2 Downward API  2.2.1 yaml示例 2.2.2 Downward API 支持字段  3 投票 序言 任何一件事情只要坚持六个月以上你都可以看到质的飞跃。 在上一篇文章中【K8S系列】深入解析Pod对象(一) 我们深入解析了 Pod 的 API 对象讲解了 Pod 和 Container 的关系。 作为 Kubernetes 项目里最核心的编排对象Pod 携带的信息非常丰富。 今天从一种特殊的 Volume ——Projected Volume 开始主要讲解 SecretDownward API从上面这两种类型展开希望能帮助你更加深入地理解 Pod 对象各个重要字段的含义。 文章标记颜色说明 黄色重要标题红色用来标记结论绿色用来标记一级论点蓝色用来标记二级论点1.Volume 简单介绍 Kubernetesk8s中的 Volume 是一种抽象概念用于表示容器中的存储设备。 Volume 可以包含多个容器以便它们可以在容器之间共享数据。Volume 在容器内部进行挂载从而使容器中的应用程序可以像使用本地存储设备一样使用它们。 Kubernetes 中的 Volume 具有以下特点 生命周期Volume 可以独立于容器而存在因此可以在容器之间共享和重用数据。 类型Kubernetes 中支持多种类型的 Volume例如 persistentVolumeClaimPVCemptyDir、hostPath、configMap、secret 、downwardAPI、projected、CSI等等。每种 Volume 类型都有其特定的用途和限制。 挂载方式Volume 可以通过不同的挂载方式挂载到容器中例如作为容器的文件夹、作为容器的环境变量等等。每种挂载方式也都有其特定的用途和限制。 存储介质Volume 可以与不同的存储介质一起使用例如本地磁盘、网络存储、云存储等等。 Kubernetes 中的 Volume 提供了一种灵活、可扩展的方式来管理容器中的数据存储。通过使用 Volume可以轻松地实现容器之间的数据共享和数据持久化从而使 Kubernetes 应用程序更加可靠和可维护。 2 Projected Volume 介绍 在 Kubernetes 中有几种特殊的 Volume它们存在的意义不是为了存放容器里的数据也不是用来进行容器和宿主机之间的数据交换。 这些特殊 Volume 的作用是为容器提供预先定义好的数据。 所以从容器的角度来看这些 Volume 里的信息就是仿佛是被 Kubernetes“投射”Project进入容器当中的。这正是 Projected Volume 的含义 详细介绍一下 Kubernetesk8s中的 projected Volume 是一种特殊的 Volume 类型可以把它翻译为“投射数据卷”。 简单说它可以将多个 Volume 类型投影到一个 Volume 中。 它可以将多个 Volume 挂载到容器中从而实现更加灵活和高效的容器化部署。 projected Volume 支持以下四种 Volume 类型的投影 Secret将 Kubernetes 中的 Secret 对象挂载到容器中从而使容器可以访问加密的敏感信息如密码、证书等。 ConfigMap将 Kubernetes 中的 ConfigMap 对象挂载到容器中从而使容器可以访问 ConfigMap 中的配置信息。 DownwardAPI将容器的元数据如 Pod 名称、命名空间、标签等挂载到容器中从而使容器可以访问自身的元数据。 ServiceAccountToken将 ServiceAccount 的令牌挂载到容器中从而使容器可以通过 API 服务器与 Kubernetes API 进行通信。 使用 projected Volume 可以将多个 Volume 类型投影到一个 Volume 中从而简化 Volume 的管理和配置。 例如可以将 ConfigMap 和 Secret 投影到一个 Volume 中并将其挂载到容器中以便容器可以访问配置信息和加密的敏感信息。 使用 projected Volume 可以提高容器应用程序的灵活性和可维护性从而更加高效地进行容器化部署。 2.1 Secret 2.1.1 yaml讲解 我们先来看一下Secret它的作用是帮你把 Pod 想要访问的加密数据存放到 Etcd 中。然后就可以通过在 Pod 的容器里挂载 Volume 的方式访问到这些 Secret 里保存的信息了。 Secret 最典型的使用场景是存放数据库的 Credential 信息比如下面这个例子 文件名test-projected-volume.yaml apiVersion: v1 kind: Pod metadata:name: test-projected-volume spec:containers:- name: test-secret-volumeimage: busyboxargs:- sleep- 86400volumeMounts:- name: mysql-credmountPath: /projected-volumereadOnly: truevolumes:- name: mysql-credprojected:sources:- secret:name: user- secret:name: passward 小插曲 在这个例子中我们用到了BusyBox镜像简单介绍下这个镜像 BusyBox是一个开源项目提供了一个类似于UNIX操作系统的命令行界面它包含了许多常用的工具程序如文件操作、文本处理、网络配置、系统监测等。它被设计成在嵌入式系统中使用因为它占用的空间很小可以在资源受限的设备上运行。 在容器技术中BusyBox通常被用作一个基础镜像因为它非常轻量级可以帮助构建小型容器这也是它被称为微型容器的原因。 另外很多容器镜像都会以BusyBox为基础通过添加其他应用程序和库来构建完整的应用程序容器。 言归正传讲下yaml示例 在这个 Pod 中定义了一个简单的容器。它声明挂载的 Volume是 projected 类型。这个 Volume 的数据来源sources则是名为 user 和 pass 的 Secret 对象分别对应的是数据库的用户名和密码。  这里用到的数据库的用户名、密码就是以 Secret 对象的方式交给 Kubernetes 保存的。完成这个操作的指令如下所示 $ kubectl create secret generic user --from-file./username.txt $ kubectl create secret generic passward --from-file./password.txt如果要查看这些 Secret 对象的话只要执行一条 kubectl get 命令就可以了 kubectl get secrets 结果如下 NAME TYPE DATA AGE user Opaque 1 30s passward Opaque 1 30s又来一个小插曲 除了使用 kubectl create secret 指令外我们也可以直接通过编写 YAML 文件的方式来创建这个 Secret 对象如 apiVersion: v1 kind: Secret metadata:name: mytestsecret type: Opaque data:user: YWRtaW4passward: YWRtaW4xMjM0注意通过编写 YAML 文件创建出来的 Secret 对象只有一个。 它的 data 字段是以 Key-Value 的格式保存了两份 Secret 数据。其中“user”就是第一份数据的 Key“passward”是第二份数据的 Key。 需要注意的是Secret 对象要求这些数据必须是经过 Base64 转码的以免出现明文密码的安全隐患。这个转码操作也很简单比如 ➜ ~ echo -n admin | base64 YWRtaW4 ➜ ~ echo -n admin1234 | base64 YWRtaW4xMjM0 Tips 需要注意的是像这样创建的 Secret 对象它里面的内容仅仅是经过了转码而并没有被加密。在真正的生产环境中需要在 Kubernetes 中开启 Secret 的加密插件增强数据的安全性 2.1.2 创建Pod  言归正传 我们来创建一下这个 Pod文件名为test-projected-volume.yaml kubectl create -f test-projected-volume.yaml 查看结果 $ kubectl exec -it test-projected-volume -- /bin/sh $ ls /projected-volume/ user passward $ cat /projected-volume/user admin $ cat /projected-volume/passward admin1234 从上面结果中可以看到保存在 Etcd 里的用户名和密码信息已经以文件的形式出现在了容器的 Volume 目录里。 而这个文件的名字就是 kubectl create secret 指定的 Key或者说是 Secret 对象的 data 字段指定的 Key。 更重要的是像这样通过挂载方式进入到容器里的 Secret一旦其对应的 Etcd 里的数据被更新这些 Volume 里的文件内容同样也会被更新。其实这是 kubelet 组件在定时维护这些 Volume。 2.2 Downward API  2.2.1 yaml示例 Downward API是让 Pod 里的容器能够直接获取到这个 Pod API 对象本身的信息。 举例 apiVersion: v1 kind: Pod metadata:name: test-downwardapi-volumelabels:zone: us-est-coastcluster: test-cluster1rack: rack-22 spec:containers:- name: client-containerimage: k8s.gcr.io/busyboxcommand: [sh, -c]args:- while true; doif [[ -e /etc/podinfo/labels ]]; thenecho -en \n\n; cat /etc/podinfo/labels; fi;sleep 5;done;volumeMounts:- name: podinfomountPath: /etc/podinforeadOnly: falsevolumes:- name: podinfoprojected:sources:- downwardAPI:items:- path: labelsfieldRef:fieldPath: metadata.labels 在这个 Pod 的 YAML 文件中定义了一个简单的容器声明了一个 projected 类型的 Volume。 只不过这次 Volume 的数据来源变成了 Downward API。而这个 Downward API Volume则声明了要暴露 Pod 的 metadata.labels 信息给容器。 2.2.2 Downward API 支持字段  Kubernetes Downward API 允许容器在运行时通过环境变量或卷挂载的方式获取 Pod 和容器的元数据信息。支持的字段包括 metadata.name: Pod 的名称metadata.namespace: Pod 的命名空间metadata.labels: Pod 的标签metadata.annotations: Pod 的注释spec.nodeName: Pod 调度到的节点名称spec.serviceAccountName: Pod 使用的服务账户名称spec.containers[*].name: 容器名称spec.containers[*].image: 容器使用的镜像名称spec.containers[*].imagePullPolicy: 容器拉取镜像使用的策略spec.containers[].ports[].containerPort: 容器暴露的端口号spec.containers[].env[].name: 容器中定义的环境变量名称spec.containers[].env[].value: 容器中定义的环境变量值status.hostIP: Pod 调度到的节点的 IP 地址status.podIP: Pod 的 IP 地址status.podIPs[*].ip: Pod 的 IP 地址多网卡情况下status.startTime: Pod 启动时间需要注意的是这些字段可能会因 Kubernetes 版本而有所不同具体的支持情况需要参考相应版本的文档 不过需要注意的是Downward API 能够获取到的信息一定是 Pod 里的容器进程启动之前就能够确定下来的信息。 而你如果想要获取 Pod 容器运行后才会出现的信息比如容器进程的 PID那就肯定不能使用 Downward API 了而应该考虑在 Pod 里定义一个 sidecar 容器。 其实Secret、ConfigMap以及 Downward API 这三种 Projected Volume 定义的信息大多还可以通过环境变量的方式出现在容器里。 但是通过环境变量获取这些信息的方式不具备自动更新的能力。所以一般情况下都建议你使用 Volume 文件的方式获取这些信息。 3 投票
http://www.hkea.cn/news/14299367/

相关文章:

  • 西宁建设厅培训中心网站WordPress允许用户发布文章
  • ps网站交互设计网站建设后续说明
  • 个人免费网站制作seo软文外包公司
  • 企业网站如何做自然搜索wordpress+假用户插件
  • 网页设计网站建设的基本流程福州百度开户多少钱
  • 成都网站推广营销微信深圳做微商网站设计
  • 常用wap网站开发工具 手机网站制作软件建设合同施工合同示范文本
  • 邳州做网站的公司买权重网站
  • 如何让网站自适应手机网站弹出窗口代码
  • 淘客网站怎么做 知乎网站开发部门工资入什么科目
  • 苏州品牌网站制作公司外贸人才网属于什么电子商务模式
  • 山东省济宁市最新消息北京seo百科
  • 河南网站推广优化公司做任务送科比网站
  • phpcmsv9网站地图推广公司的网站
  • 旅行社网站建设规划书论文观察者网wordpress
  • 一键制作网站php招生网站开发
  • 网站上传服务器教程网店代运营就是个坑
  • 南京电信网站空间扩容小程序开发需要多少钱知乎
  • 东莞南城网站建设价格洛阳网站建设启辰网络
  • 自己做黑彩网站外贸网站销售方式
  • 7天精通网站建设实录网站群建设方案.doc
  • 个人博客网站制作搭建宁波seo网络推广公司
  • 厦门外贸网站建设公众号软文范例100
  • 网站开发类合同百度百科怎么创建自己
  • 湖北省建设安全管理协会网站泸州住院证明图片在线制作
  • 网站开发问题及解决网页制作教程视频
  • 男女做爰全过程网站南阳建站公司
  • 唐山中小企业网站制作没广告的视频播放器app
  • 高淳城乡建设局网站免备案wordpress主机空间
  • 青岛黄岛网站建设公司电话搜房网