资源清单

自主式的pod无法自愈

编辑文件vim pod.yaml

apiVersion: v1  	#指定API的版本
kind: Pod   		#文件自定义的资源类型和角色,控制器类型
metadata:    		#元数据对象
  name: demo		#命名空间
  labels:			#标签
    app: demo   	#标签的类型室键值方式
spec:				#固定对象容器的控制
  containers:		
  - name: nginx		#运行容器名称
    image: nginx	#运行的镜像

编辑文件的时候可以查看能帮助:

kubectl explain pod     #-required有这个参数必须添加
kubectl explain pod.spec

怎样开启:

 kubectl create -f pod.yaml   #直接指定文件

在这里插入图片描述
怎样删除:直接删除没有指定控制器

kubectl delete -f pod.yaml  #直接指定文件

一个pod可以运行多个容器
一个pod里面可以启用多个容器,但是不能使用同同一nginx个镜像:会发生资源的争抢80端口被占用。

指定一个nginx和一个redis镜像

apiVersion: v1
kind: Pod
metadata:
  name: demo
  labels:
    app: demo
spec:
  containers:
  - name: nginx
    image: nginx   
  - name: redis
    image: redis
kubectl create -f pod.yaml   #直接指定文件
kubectl  get  pod   #查看
NAME   READY   STATUS    RESTARTS   AGE
demo   2/2     Running   0          56s

日志的查看;
 kubectl logs demo nginx
 kubectl logs demo redis

标签
标签就是为了让我们部署的时候具有选择性,指定标签就可以

kubectl get pod demo --show-labels	#查看标签
kubectl get pod  -l app				#过滤标签
kubectl label pod demo version=v1	#打标签
kubectl label pod demo app=nginx --overwrite   #更改标签


 kubectl describe pod demo  #查看之前部署的任务都在server2上
 Normal  Scheduled  <unknown>  default-scheduler  Successfully assigned default/demo to server2
  Normal  Pulling    84s        kubelet, server2   Pulling image "nginx"
  Normal  Pulled     71s        kubelet, server2   Successfully pulled image "nginx"
  Normal  Created    71s        kubelet, server2   Created container nginx
  Normal  Started    71s        kubelet, server2   Started container nginx
  Normal  Pulling    71s        kubelet, server2   Pulling image "redis"
  Normal  Pulled     54s        kubelet, server2   Successfully pulled image "redis"
  Normal  Created    54s        kubelet, server2   Created container redis
  Normal  Started    54s        kubelet, server2   Started container redis

给节server3点打标签,选择在server3上开启服务

 kubectl label nodes server3 disktype=ssd	#给server3定义标签
 kubectl get nodes --show-labels 			#查看节点标签
 vim pod.ymal #编辑文件
 apiVersion: v1
kind: Pod
metadata:
  name: demo
  labels:
    app: demo
spec:
  containers:
  - name: nginx
    image: nginx
  - name: redis
    image: redis
  nodeSelector:   #指定节点的标签
    disktype: ssd

kubectl create -f pod.yaml	#部署

部署好之后会自动的选取节点,因为server3上有相应的标签

[kubeadm@server1 ~]$ kubectl  get  pod -o  wide
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE      NOMINATED NODE   READINESS GATES
demo   2/2     Running   0          96s   10.244.2.6   server3   <none>           <none>

拉取镜像的三种策略:
1,Alway:每次都会重新拉去镜像(默认)
2,Never:仅使用本地的镜像
3,ifNotPresent:有本地用本地没有则拉取

重启的三种策略:
1,Always:一直进行尝试重启
2,OnFaityre:只有非零退出的时候才会重启
3,Never:pod结束后不会重启

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐