当前位置:   article > 正文

k8s--基础--12.4--pod--创建自主式pod_自主式 pod

自主式 pod

k8s–基础–12.4–pod–创建自主式pod


1、查看 部署一个pod时需要哪些字段

1.1、命令

kubectl explain pods 
  • 1

在这里插入图片描述

1.2、字段说明

1.2.1、status

  1. 最近观察到的pod的状态。
  2. 此数据可能不是最新的。
  3. Status不需要在pod或者其他资源中定义,这个默认是存在的

1.2.2、apiVersion

定义了此对象表示的版本化模式。
服务器应将已识别的模式转换为最新的内部值,并可能拒绝无法识别的值。

1.2.2.1、查看k8s集群支持的apiVersion有哪些
[root@master1 ~]# kubectl api-versions
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
crd.projectcalico.org/v1
discovery.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
metrics.k8s.io/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

1.2.3、kind

此对象的资源类型,如deployment、statefulset、pod、service、ingress

1.2.4、metadata

对象的元数据

1.2.5、spec

指定容器的所需行为

2、创建pod

  1. 通过定义资源清单yaml文件(就是以yaml结尾的文件)创建pod
  2. 在k8s的master节点操作

2.1、查看资源清单需要哪些字段

# 查看 pods 需要哪些字段
kubectl explain pods

# 查看 apiVersion 需要哪些字段
kubectl explain pods.apiVersion

# 查看 kind 需要哪些字段
kubectl explain pods.kind

# 查看 spec 需要哪些字段
kubectl explain pods.metadata

# 查看 spec 需要哪些字段
kubectl explain pods.spec
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.2、定义一个pod

vim /root/k8s/test/pod.yaml
  • 1

内容

apiVersion: v1
kind: Pod
metadata:
  name: web
  namespace: default
  labels:
    web1: tomcat
spec:
  containers:
  - name: tomcat1
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.3、创建一个pod

kubectl apply -f /root/k8s/test/pod.yaml
  • 1

在这里插入图片描述

3、pod操作

3.1、查看pod创建的情况

kubectl get pods
  • 1

在这里插入图片描述

3.2、查看pod的详细信息

kubectl describe pods web
  • 1

内容

[root@master1 test]# kubectl describe pods web
Name:         web
Namespace:    default
Priority:     0
Node:         node1/192.168.187.155
Start Time:   Sun, 10 Apr 2022 09:44:48 +0800
Labels:       web1=tomcat
Annotations:  cni.projectcalico.org/podIP: 10.244.1.41/32
Status:       Running
IP:           10.244.1.41
IPs:
  IP:  10.244.1.41
Containers:
  tomcat1:
    Container ID:   docker://a553044eeddcb7333a4f62a522dfeb1cd33878f80790d782df91e165490e4635
    Image:          tomcat:8.5-jre8-alpine
    Image ID:       docker-pullable://tomcat@sha256:04feaf74f8bb54b43ea136b150bbc7b58e8a3062aead67ab871f2dbbd5dac5d1
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Sun, 10 Apr 2022 09:44:50 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8z75k (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  default-token-8z75k:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-8z75k
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  48s   default-scheduler  Successfully assigned default/web to node1
  Normal  Pulled     47s   kubelet            Container image "tomcat:8.5-jre8-alpine" already present on machine
  Normal  Created    47s   kubelet            Created container tomcat1
  Normal  Started    47s   kubelet            Started container tomcat1
[root@master1 test]# 


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

3.3、删除pod.yaml定义的所有资源

kubectl delete -f/root/k8s/test/pod.yaml 
  • 1

3.4、查看pod调度到哪个节点

kubectl get pods -o wide
  • 1

在这里插入图片描述

3.5、查看pod日志

kubectl logs web
  • 1

在这里插入图片描述

3.6、查看pod里指定容器的日志

kubectl logs -c tomcat1 web
  • 1

在这里插入图片描述

3.7、进入到刚才创建的pod,刚才创建的pod名字是web

kubectl exec -it web -- /bin/bash
  • 1

在这里插入图片描述

3.8、假如pod里有多个容器,进入到pod里的指定容器,按如下命令:

kubectl exec -it web  -c tomcat1 -- /bin/bash 
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/161951
推荐阅读
相关标签
  

闽ICP备14008679号