关于后端:pod-控制器-4

3次阅读

共计 2032 个字符,预计需要花费 6 分钟才能阅读完成。

对于 pod 应用 yaml 文件或者 json 形容文件生成,之前都有提到过,且对 yaml 的每一个属性都有介绍到

的确是属性十分的多,然而 咱们晓得如何去辨别哪些是重要的局部,哪些是可有可无的局部之后,这些就变得简略了

pod 的次要组成部分

咱们能够查看一下任意一个曾经运行中的 pod

下面看到的属性,大多都是通过 yaml 文件来定义的

pod 定义是由这几个局部组成的:

  • 应用 K8S 中 api 的版本和 yaml 形容的资源类型

上面这 3 大块,基本上在所有的 K8S 资源中都能够看到

  • metadata

包含名称,命名空间,标签,该容器的其余信息

  • spec

对于 pod 的理论阐明,如该 pod 的容器是哪些,卷是哪些等等

  • status

创立 pod 的时候不写这一部分,这一部分是蕴含只读的运行时数据,展现了资源该时刻的状态

手动创立 pod

之前咱们有尝试过通过 kubectl run ... 的形式来间接通过拉取镜像后创立 pod

很多时候后,咱们是须要本人写 yaml 起初运行生成 pod 的

例如主动创立:

kubectl run xmtkubia --image=xiaomotong888/xmtkubia --port=8080

咱们能够这样来手动创立一个 pod

xmtkubia.yaml

apiVersion: v1
kind: Pod
metadata:
  name: xmt-kubia
spec:
  containers:
  - image: xiaomotong888/xmtkubia
    name: xmtkubia
    ports:
    - containerPort: 8080
      protocol: TCP

这样写起来就比较简单了,其实和之前咱们应用 docker 来运行成容器的做法原理是一样的,此处是

  • 定义 Kubernates API 版本是 v1
  • 资源类型是 Pod
  • 该 pod 是 基于 xiaomotong888/xmtkubia 镜像的单个容器组成的

kubectl explain

咱们能够应用 kubectl explain 来查看有哪些 API 对象,都是反对的那些属性

咱们冀望查看 pods 的就能够这样来查看

kubectl explain pods

咱们冀望查看 pod 外面的 spec 对象须要填写哪些字段,咱们就能够这样来查看

kubectl explain pod.spec

通过上述形式,就能够看到每一个对象的都有哪些属性,以及如何应用等等

通过上述查看 explain,例如 container 对象前面就带有 required 关键字,也就是说,咱们编写 spec 的时候,container 这个对象必须填写

当然,也能够参看 github 文档 , 这外面有具体的阐明,咱们对于每一个属性都进行深究意义并不大,次要是咱们会用,后续可能晓得其底层原理

pod 的操作形式补充

创立一个 pod

kubectl create -f xmtkubia.yaml

查看 pod

kubectl get pods

查看 pod 的更多信息

kubectl get pods -o wide

失去 pod 的残缺形容文件,以 yaml 的形式

kubectl get pod xmt-kubia -o yaml

失去 pod 的残缺形容文件,以 json 的形式

kubectl get pod xmt-kubia -o json

查看容器的日志

docker logs 容器 id

查看 pod 的日志

kubectl logs pod 名字

$ kubectl logs xmt-kubia
xmt kubia server starting...

查看多容器的 pod 的日志

kubectl logs pod 名字 -c 容器名字

$ kubectl logs xmt-kubia -c xmtkubia
xmt kubia server starting...

查看 pod 的形容信息

kubectl describe pod pod 名字,如:

kubectl describe pod xmt-kubia

如何拜访 pod 外面的容器

之前咱们有说到过,能够建 一个 service,内部间接拜访 service 即可,对于 service 的进阶前面一起分享

在 pod 这一块,咱们想要在 本地机器拜访 pod 外面的容器,咱们本地调试的时候能够 应用端口转发的形式来实现

下面的 pod,咱们晓得容器外面的服务端口是 8080,这个端口对于在本机,必定是拜访不到的,因为 pod 外面有本人独立的文件系统,地址,端口等等

咱们将本机的 8088 转发到 容器外面的 8080 端口,能够这样通过 port-forward 来实现

kubectl port-forward xmt-kubia 8088:8080

查看成果

咱们关上另一个终端,拜访 8080 端口依然是拜访不通的,然而咱们本机拜访 8088 是能够通的

上述应用 port-forward 简略流程是这样的

应用端口转发的形式测试咱们指定的 pod,这是一种无效的办法,当然还有其余的办法,后续再分享

明天就到这里,学习所得,若有偏差,还请斧正

欢送点赞,关注,珍藏

敌人们,你的反对和激励,是我保持分享,提高质量的能源

好了,本次就到这里

技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。

我是 阿兵云原生,欢送点赞关注珍藏,下次见~

正文完
 0