首页 > 其他分享 >kubernetes集群核心概念---pod

kubernetes集群核心概念---pod

时间:2024-02-07 15:11:05浏览次数:26  
标签:kubectl stress name kubernetes --- test pod root

1.pod介绍

参考链接: https://kubernetes.io/zh/docs/concepts/workloads/pods/

1.1.查看pod

[root@centos ~]# kubectl get pod # pod或pods都可以,不指定namespace,默认是名为default的namespace
	
[root@centos ~]# kubectl get pod -n kube-system

1.2.pod的yaml资源清单格式

apiVersion: v1
kind: Pod
metadata:
  name:
  labels:
spec:
  hostNetwork: true|false
  nodeName: "指定的节点名称必须在etcd中有记录"
  volumes:
  - name: data01
    emptyDir:{}
  - name: data02
    hostPath:
      path: 
  - name: data03
    nfs:
      server:
      path:
  - name: data04
    configMap:
      name: 
      items:	  
  contaners:
  - name:
    image:
	env:
	- name:
	  value:
	- name:
	  value:
	command: []
	args: []
	ports:
	- containerPort:
	  hostIP:
	  hostPort:
	  name:
	  protocol:
	imagePullPolicy: Alwasy|Never|IfNotPresent
	resources:
	   request:
	     cpu:
		 memory:
	   limits:
	     cpu:
		 memory:
	volumeMounts:
	- name:
	  mountPath:
status:

1.3.yaml格式查找帮助方法

[root@centos ~]# kubectl explain namespace

[root@centos ~]# kubectl explain pod
[root@centos ~]# kubectl explain pod.spec
[root@centos ~]# kubectl explain pod.spec.containers

2.pod创建

2.1.创建一个名为pod-nginx的pod

[root@centos ~]# kubectl run nginx1 --image=nginx:1.15-alpine
pod/nginx1 created

[root@centos ~]# kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
nginx1           1/1     Running   0          41s

2.2.YAML创建pod

[root@centos ~]# vim pod1.yml
apiVersion: v1		# api版本
kind: Pod		# 资源类型为Pod
metadata:
  name: pod-test-stress		# 自定义pod的名称
spec:
  containers:		# 定义pod里包含的容器
  - name: c1		# 自定义pod中的容器名
    image: polinux/test-stress		# 启动容器的镜像名
    command: ["test-stress"]			# 自定义启动容器时要执行的命令(类似dockerfile里的CMD)
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"] # 自定义启动容器执行命令的参数
    
# polinux/test-stress这个镜像用于压力测试,在启动容器时传命令与参数就是相当于分配容器运行时需要的压力

[root@centos ~]# kubectl apply -f pod1.yml
pod/pod-test-stress created

3.查看pod信息

3.1.查看pod信息

[root@centos ~]# kubectl get pod
NAME          READY   STATUS    RESTARTS   AGE
pod-test-stress   1/1     Running   0          20s

3.2.查看pod详细信息

[root@centos ~]# kubectl get pods -o wide
NAME         READY   STATUS    RESTARTS   AGE   IP              NODE          NOMINATED NODE   READINESS GATES
pod-test-stress   1/1     Running   0          71s   10.244.194.72   k8s-worker1   <none>           <none>

3.3.描述pod详细信息

[root@k8s-master1 ~]# kubectl describe pod pod-test-stress 
......
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  102s  default-scheduler  Successfully assigned default/pod-test-stress to k8s-worker1
  Normal  Pulling    102s  kubelet            Pulling image "polinux/test-stress"
  Normal  Pulled     83s   kubelet            Successfully pulled image "polinux/test-stress" in 18.944533343s
  Normal  Created    83s   kubelet            Created container c1
  Normal  Started    82s   kubelet            Started container c1

4.删除pod

4.1.单个pod删除

# kubectl delete pod pod-test-stress
# kubectl delete -f pod1.yml

4.2.多个pod删除

# kubectl delete pod pod名1 pod名2 pod名3 ......

# kubectl get pods |awk 'NR>1 {print $1}' |xargs kubectl  delete pod

# kubectl delete ns xxxx

5.pod标签

5.1.查看pod标签

kubectl get pods --show-labels

5.2.打标签并查看

# kubectl label pod pod-test-stress region=huanai zone=A env=test-stress bussiness=game
pod/pod-test-stress labeled

# kubectl get pods --show-labels
NAME               READY   STATUS    RESTARTS   AGE     LABELS
pod-test-stress    1/1     Running   0          8m54s   bussiness=game,env=test-stress,region=huanai,zone=A

5.3.通过等值关系标签查询

# kubectl get pods -l zone=A
NAME              READY     STATUS    RESTARTS   AGE
pod-test-stress   1/1     Running   0          9m22s

5.4.通过集合关系标签查询

kubectl get pods -l "zone in (A,B,C)"
NAME              READY   STATUS    RESTARTS   AGE
pod-test-stress   1/1     Running   0          9m55s

5.5.删除标签后再验证

[root@k8s-master1 ~]# kubectl label pod pod-stress region- zone- env- bussiness-
pod/pod-test-stress labeled

[root@k8s-master1 ~]# kubectl get pods --show-labels
NAME               READY   STATUS    RESTARTS   AGE   LABELS
pod-test-stress    1/1     Running   0          16m     <none>

5.6.通过YAML创建Pod时添加标签

1.修改yaml
# vim pod1.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-test-stress
  namespace: default
  labels:
    env: dev
    app: nginx				# 直接在原来的yaml里加上多个标签
spec:
  containers:
  - name: c1
    image: polinux/stress
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
    imagePullPolicy: IfNotPresent
	
2.直接apply应用
# kubectl apply -f pod1.yaml
pod/pod-stress1 configured

3.验证
kubectl get pods --show-labels
NAME              READY   STATUS             RESTARTS   AGE     LABELS
pod-test-stress   1/1     Running            0          3m5s    app=nginx,env=dev

标签:kubectl,stress,name,kubernetes,---,test,pod,root
From: https://www.cnblogs.com/liuzhonghua1/p/18010946

相关文章

  • AtCoder-ABC-Ex乱写
    ABC233ExManhattanChristmasTree先将\((x,y)\)变成\((x+y,x-y)\),也就是曼哈顿转切比雪夫,之后曼哈顿距离\(\lek\)的在切比雪夫坐标系下就是一个正方形。用主席树做矩形和,外层套一个二分即可,时间复杂度\(\mathcal{O}(n\log^2n)\)。ABC233Ex#include<bits/stdc++.h......
  • 为什么kube-controller-manager启动后https长连接数量是2
    k8sv1.19.0单节点集群2条长连接编译二进制并调试cdcmd/kube-controller-manager&&gobuild#vscodelaunch.json{"name":"Launch","type":"go","request":"launch","mode":......
  • AI大模型的使用-让AI帮你写单元测试
    随着人工智能技术的不断发展,AI大模型在许多领域都展现出了强大的能力。其中一个令人兴奋的应用领域是软件开发,尤其是单元测试的编写和执行。通过利用AI大模型的生成能力和自然语言处理技术,我们可以自动化地编写和执行单元测试,从而提高测试效率和代码质量。一、AI大模型在单元测试中......
  • 无涯教程-RegExp.prototype.ignoreCase函数
    ignoreCase是RegExp对象的只读布尔属性。它指定特定的正则表达式是否执行不区分大小写的匹配,即是否使用"i"属性创建。RegExp.prototype.ignoreCase-语法RegExpObject.ignoreCaseRegExp.prototype.ignoreCase-返回值如果设置了"i"修饰符,则返回"TRUE",否则返回"......
  • offline 2 online | 重要性采样,把 offline + online 数据化为 on-policy samples
    论文标题:Offline-to-OnlineReinforcementLearningviaBalancedReplayandPessimisticQ-EnsembleCoRL2021,4个weakaccept。pdf:https://arxiv.org/pdf/2107.00591.pdfhtml:https://ar5iv.labs.arxiv.org/html/2107.00591openreview:https://openreview.net/forum?id=......
  • 读论文-基于会话的推荐系统综述(A survey on session-based recommender systems)
    前言今天读的论文是一篇于2021年发表于"ACMComputingSurveys(CSUR)"的论文,文章写到,推荐系统在信息过载时代和数字化经济中非常重要。基于会话的推荐系统(SBRSs)是新的推荐系统范式,不同于其他模型化长期静态用户偏好的推荐系统,SBRSs专注于捕捉短期动态用户偏好。尽管SBRSs已被深......
  • kubernetes集群中一些常用的资源
    Pod(容器组):Pod是k8s中最小的可部署单元,它是一个或多个容器的集合,共享网络和存储资源,并在同一主机上运行。Pod通常包含一个主应用程序容器和辅助容器(如sidecar容器)。Deployment(部署):Deployment用于定义Pod的声明性配置,并支持滚动升级和回滚。它可以确保指定数量的Pod副本正在运行,......
  • P9501 RiOI-2 likely
    好好好好好题\(T\)组数据,给定\(n,m,k\),求所有\(2^n\)个大小为\(n\)的由\(\pm1\)组成的有标号环\(a_{0\dotsn-1}\)中,有多少个满足\(\sum_{i=0}^{n-1}\prod_{j=0}^{m-1}a_{(i+j)\\bmod\n}=k\)。对\(998244353\)取模。\(1\leT\le10,2\len,\sumn\le5\tim......
  • Git--命令常用
    GITLab命令gitinit#初始化本地仓库gitstatus#查看分支gitclone<url>#克隆远程仓库gitadd<file>#添加文件到暂存区添加所有用gitadd.gitcommit-m"要提交的内容描述"#提交更改gitreset<file>......
  • 无涯教程-RegExp.prototype.global函数
    global是RegExp对象的只读布尔属性。它指定特定的正则表达式是否执行全局匹配,即是否使用"g"属性创建。RegExp.prototype.global-语法RegExpObject.globalRegExp.prototype.global-返回值如果设置了"g"修饰符,则返回"TRUE",否则返回"FALSE"。RegExp.prototype.......