通过资源清单文件创建第一个Pod
上一篇用yaml文件创建了nginx,那这次就创Tomact吧
[root@k8s-master1 pod-yaml]# vim pod-tomcat.yaml
apiVersion: v1
kind: Pod
metadata:
name: tomcat-test
namespace: default
labels:
app: tomcat
spec:
containers:
- name: tomcat-java
image: tomcat:10.1.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
[root@k8s-master1 pod-yaml]# kubectl apply -f pod-tomcat.yaml
pod/tomcat-test created
[root@k8s-master1 pod-yaml]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-test-78dc6966dd-x7ktk 1/1 Running 0 69m
nginx-test-78dc6966dd-xxkvp 1/1 Running 0 71m
tomcat-test 0/1 ContainerCreating 0 5s
yaml文件解释
apiVersion: v1 #pod资源版本
kind: Pod #定义的资源类型
metadata: #定义元数据
name: tomcat-test #pod名称
namespace: default #定义pod命名空间
labels: #定义pod标签
app: tomcat
spec: #从spec一下是定义容器的
containers: #容器
- name: tomcat-java #容器名称
image: tomcat:10.1.7 #容器镜像
imagePullPolicy: IfNotPresent #镜像下载策略
ports: #暴露的端口号
- containerPort: 8080
Pod常用命令
#更新资源清单
[root@k8s-master1 pod-yaml]# kubectl apply -f pod-tomcat.yaml
#查看Pod是否创建成功
[root@k8s-master1 pod-yaml]# kubectl get pods -A
或者
[root@k8s-master1 pod-yaml]# kubectl get pods -l app=tomcat
NAME READY STATUS RESTARTS AGE
tomcat-test 1/1 Running 0 157m
-l 表示按标签筛选 app=tomcat是筛选内容
#查看pod的ip和pod调度到哪个节点上
[root@k8s-master1 pod-yaml]# kubectl get pods -owide
#查看pod日志
[root@k8s-master1 pod-yaml]# kubectl logs tomcat-test (tomcat-test是pod名称)
#进入到创建的pod
[root@k8s-master1 pod-yaml]# kubectl exec -it tomcat-test /bin/bash
#假如pod里有多个容器,进入到pod里的指定容器,-c 指定容器
[root@k8s-master1 pod-yaml]# kubectl exec -it tomcat-test -c tomcat-java /bin/bash
#查看k8s集群中的名称空间
[root@k8s-master1 pod-yaml]# kubectl get namespaces
#查看pod详细信息,当启动一个pod没起来的时候可以用这个命令排查问题
[root@k8s-master1 pod-yaml]# kubectl describe pods tomcat-test
#查看pod具有哪些标签
[root@k8s-master1 pod-yaml]# kubectl get pods --show-labels
#删除pod
[root@k8s-master1 pod-yaml]# kubectl delete -f pod-tomcat.yaml
或者
[root@k8s-master1 pod-yaml]# kubectl delete pods nginx-test
通过 kubectl run 命令行创建pod(不使用yaml文件)
[root@k8s-master1 pod-yaml]# kubectl run tomcat --image=tomcat:10.1.7 --image-pull-policy='IfNotPresent' --port=8080
pod/tomcat created
[root@k8s-master1 pod-yaml]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-test-78dc6966dd-rshdh 1/1 Running 0 2m53s
nginx-test-78dc6966dd-xxkvp 1/1 Running 0 4h
tomcat 1/1 Running 0 9s