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

福州自助建站网站定制做网站平台

福州自助建站网站,定制做网站平台,易语言 wordpress,建设银行信用卡官网站如何访问 pod 元数据 **我们在 pod 中运行容器的时候#xff0c;是否也会有想要获取当前 pod 的环境信息呢#xff1f;**咱们写的 yaml 清单写的很简单#xff0c;实际上部署之后#xff0c; k8s 会给我们补充在 yaml 清单中没有写的字段#xff0c;那么我们的 pod 环境信…如何访问 pod 元数据 **我们在 pod 中运行容器的时候是否也会有想要获取当前 pod 的环境信息呢**咱们写的 yaml 清单写的很简单实际上部署之后 k8s 会给我们补充在 yaml 清单中没有写的字段那么我们的 pod 环境信息和容器的元数据如何传递到容器中呢是不是也是通过获取这些 k8s 默认给我填写的字段呢 有 3 种方式 通过环境变量的方式通过 Downward Api 的方式通过和 ApiServer 交互的方式 通过环境变量的方式 通过环境变量的方式获取 pod 的信息还是比较简单的还记得我们之前将卷中的数据转成环境变量传入到容器中的方式吗 本次我们也是使用类似的方式来传递数据应该说比之前的还要简单不过我们本次传递的是环境信息例如 pod 的 IPpod 的 名称命名空间pod 所属的服务账号节点的名称CPU / 内存的请求 / 限制大小等等 来我们任意看一下 pod 的 yaml 清单信息 上述 yaml 清单信息中每一个字段我们都可以用来传递到容器中作为环境变量我们可以来尝试写一个 写一个 yaml 清单创建名称为 my-downward 的 pod容器里面的使用 busybox 作为基础镜像由于容器需要运行在 pod 中因此我们需要运行一个程序在容器中例如 sleep 8888888 或者其他的任意一个可以长期运行的程序 apiVersion: v1 kind: Pod metadata:name: my-downward spec:containers:- name: my-downwardimage: busyboxcommand: [sleep,8888888]env:- name: XMT_POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: XMT_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: XMT_NODENAMEvalueFrom:fieldRef:fieldPath: spec.nodeName- name: XMT_SERVICE_ACCOUNTvalueFrom:fieldRef:fieldPath: spec.serviceAccountName- name: XMT_REQUEST_CPUvalueFrom:resourceFieldRef:resource: requests.cpudivisor: 1m- name: XMT_LIMITS_MEMORYvalueFrom:resourceFieldRef:resource: limits.memorydivisor: 1Ki上述自己配置了多个 XMT_* 的环境变量来源都是在 pod 中的对应配置kubectl create 上述 yaml 文件后可以查看效果如下 环境变量如上所示当我们容器里面需要使用该环境变量的时候就可以随取随用了很方便 可以看到容器中的环境变量和 yaml 清单上的 env 一一对应 通过 Downward Api 卷的方式 当然我们也可以使用第二种方式那就是通过 Downward Api 卷的方式具体的操作方式和上述环境变量的方式类似但是使用卷的方式会在指定的路径下生成文件 Downward Api 看上去会不会想起 Restful Api是不是都是通过访问接口的方式获取数据呢 并不是这样的 Downward Api 实际上是将 pod 的定义和状态信息作为容器的环境变量或者文件的方式来给容器传递数据的如图 Downward Api 卷的方式可以这么写 apiVersion: v1 kind: Pod metadata:name: my-downward-vvlabels:xmtconf: dev spec:containers:- name: my-downward-vvimage: busyboxcommand: [sleep,8888888]volumeMounts:- name: my-downward-vvmountPath: /etc/myvvvolumes:- name: my-downward-vvdownwardAPI:items:- path: xmtPodNamefieldRef:fieldPath: metadata.name- path: xmtNamespacefieldRef:fieldPath: metadata.namespace- path: xmtLabelsfieldRef:fieldPath: metadata.labels看这个 yaml 还是比较简单的和写挂载的方式类似的此处使用 downwardAPI 下的 items来传递每一个数据数据的来源写法和上述的环境变量类似 我们可以看到Downward Api 挂载数据具体的文件里面会以键值对的方式来呈现也会以文本的形式来呈现 我们来将 pod 的标签修改成 prod验证容器里面对应的文件是否会对应修改 kubectl label pod my-downward-vv xmtconfprod --overwrite进入容器中查看 /etc/myvv/xmtLabels 文件是否有变化 通过上述效果可以看出当使用 Downward Api 卷的时候对应的环境变量会以文件的形式存在于我们指定的目录下 若我们在程序运行中修改了环境变量对应的值那么卷中的文件内容也会相应修改 如何与 APiServer 进行交互 既然可以用第三种方式与 ApiServer 的方式咋还使用环境变量和 Downward Api 的方式呢 自然是因为 Downward Api 的方式有所局限局限就是 Downward Api 的方式只能获取自身 pod 的数据如果我们想获取其他 pod 的资源信息这个时候我们就需要和 Api Server 进行交互了 类似于这样 那么我们来写一个 pod 让 pod 里面的容器与 ApiServer 进行交互此处我们需要注意两点 我们要确定 ApiServer 的位置我们才能有机会正确访问到需要通过 ApiServer 的认证 咱们写一个 pod 用于在这个 pod 里面使用 curl 访问 ApiServer 自己制作一个简单的带有 curl 的镜像 FROM ubuntu:latest RUN apt-get update -y RUN apt install curl -y ENTRYPOINT [sleep, 8888888]制作该镜像推送镜像到 dockerhub docker build -t xiaomotong888/xmtcurl . docker push xiaomotong888/xmtcurl写一个简单的 yaml运行 pod mycurl.yaml apiVersion: v1 kind: Pod metadata:name: xmt-curl spec:containers:- name: xmt-curlimage: xiaomotong888/xmtcurlcommand: [sleep,8888888]pod 运行成功后咱们进入到 容器里面 kubectl exec -it xmt-curl bash咱们可以在 k8s 环境中查看一下 kubernetes 服务的 ip 我们可以这样来访问 在容器中访问 kubernetes 这是因为没有证书我们需要导入证书和 token 这样才能正确的访问到 ApiServer并且还需要一个重要的操作 创建一个 clusterrolebinding需要创建了该绑定之后才能正常的访问到 ApiServer若没有创建该绑定那么后面的步骤都做好了ApiServer 也会报 403 Forbidden kubectl create clusterrolebinding gitlab-cluster-admin --clusterrolecluster-admin --groupsystem:serviceaccounts --namespacedev证书的位置还记的吗 之前我们查看过默认的 k8s 挂载的位置/var/run/secrets/kubernetes.io/serviceaccount 这里面有 命名空间证书token 这个时候我们访问 k8s ApiServer 的时候可以加上该证书 curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt https://kubernetes我们可以导入一个环境变量访问 k8s ApiServer 的时候就不需要收到导入证书了 export CURL_CA_BUNDLE/var/run/secrets/kubernetes.io/serviceaccount/ca.crthttps://gitee.com/common_dev/mypic20220206/raw/master/image-20220204152125059.png 可以看到效果和刚才不一样了现在报 403 是因为没有 token 这个时候我们在加上 token 即可 TOKEN$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)这样就可以看到 apiServer 都有哪些 api 了 这些 api 可都是我们在写 yaml 清单时候 apiVersion 的是时候填写的 那么用一个图来结束今天的分享 容器里面的应用通过证书与 ApiServer 完成认证通过 token 和 namespace 和 ApiServer 完成接口的交互 今天就到这里学习所得若有偏差还请斧正 欢迎点赞关注收藏 朋友们你的支持和鼓励是我坚持分享提高质量的动力 好了本次就到这里 技术是开放的我们的心态更应是开放的。拥抱变化向阳而生努力向前行。 我是阿兵云原生欢迎点赞关注收藏下次见~ 更多的可以查看 零声每晚八点直播https://ke.qq.com/course/417774
http://www.pierceye.com/news/822805/

相关文章:

  • 网关高性能 网站建设设计制作长方体形状的包装纸盒视频
  • 如何做游戏推广网站廊坊百度推广公司地址
  • 国产做爰网站wordpress wrapper
  • 专业论坛网站开发开发长沙网站建设+个人
  • 河南便宜网站建设费用wordpress 记录访问ip
  • 汽车网站建设代理加盟深圳网络制作公司
  • 国外的旅游网站做的如何织梦网站根目录在哪里
  • 网站建设建站在线建站专业网站建设机构
  • 西安市城乡建设网官方网站衡水移动网站建设报价
  • 禅城区企业网站建设微信公众号网页版入口
  • 网站开发概述多城市二手车网站源码
  • 网站建设的内容策略本人做静态网站开发
  • 网站建设到运营赚钱网站主体负责人邮箱
  • 国外有在线做设计方案的网站吗网站地址免费
  • 做谷歌网站使用什么统计代码吗公司流程建设的意义
  • 网站广告收入如何缴文化事业建设费东莞人才市场招聘信息2023
  • 各大网站网址目录云服务器是什么意思
  • 免费作文网站张家港做网站排名
  • 具有营销价值好的网站找网站建设需要问什么软件
  • 免费好用的网页制作软件网站建设优化开发公司
  • 跟我一起做网站pdf电驴建设网站公开教学视频
  • 广州网站制作商怎样查看网站的权重
  • 网站群建设标准最好的响应式网站
  • 石家庄市建设厅网站网页网页设计班
  • 网站首页怎么设计公司网页制作培训试题
  • 虚拟主机怎么做网站新seo排名点击软件
  • 买服务器做网站 镜像选什么网页设计用的软件
  • 内江 网站建设网站后台登录地址
  • 网站建设合同副本临沂建设局官方网站
  • 林州网站建设哪家好网站做电子链接标识申请好吗