k8s pod的基础

知识点:

# 等待镜像下载完成后,pod就会正常running了(这里介绍两个实用参数 -w代表持久监听当前namespace下的指定资源的变化;-o wide代表列出更为详细的信息,比如这里pod运行的node节点显示)

# 注: READY下面的含义是后面数字1代表这个pod里面期望的容器数量,前面的数字1代表服务正常运行就绪的容器数量

kubectl get pod -o wide -w 是一个 Kubernetes 命令,用于实时地(以流式方式)查看集群中所有 Pod 的详细信息。这个命令的各个部分可以分解如下:

kubectl: Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。

get: 获取资源的命令。在这种情况下,它是用来获取 Pod 资源的。

pod: 指定要获取的资源类型是 Pod。

-o wide: 这是一个输出格式选项,wide 会显示比默认输出更详细的信息,包括每个 Pod 的 IP 地址、节点名等。

-w: 这是一个流式选项,它告诉 kubectl 以流式方式显示结果,这意味着它会持续监视 Pod 的状态,并在 Pod 的状态发生变化时更新显示。

总的来说,kubectl get pod -o wide -w 命令将显示集群中所有 Pod 的详细信息,并实时更新这些信息,以反映 Pod 状态的变化。这对于监视正在运行的应用程序或调试问题非常有用。

但我们在生产中是不建议直接用来创建pod

[root@master1 ~]#

一、实验环境:

master1\node1\node2恢复到单节点集群

定义pod: pod是指k8s最小的调度单元,k8s通过定义一个pod资源,在pod里运行容器,容器需要指定一个镜像这就可以运行一个具体的服务,一个pod可以封装一个或多个容器,可以把pod看作一个虚拟机,然后每隔容器相当于运行一个虚拟机的进程,pod是需要调度到k8s集群的工作节点来运行的,具体调度到哪个节点,需要调度器来实现的(具体node1或node2,是看master上的pod的心情,调度到哪个节点的)。

二、在node1和node2上传nginx的镜像:

[root@node1 ~]# ls
anaconda-ks.cfg      calico.tar.gz     nginx-1.27.4.tar.gz
busybox-1-28.tar.gz  nginx-1.21.6.tar
[root@node1 ~]# ctr -n k8s.io images import nginx-1.21.6.tar	(注意所有工作节点都需要)容器运行时导入nginx:1.21.6的镜像
unpacking docker.io/library/nginx:1.21.6 (sha256:94b808e393739b5363decf631a746d0                                                                                   241083d40eb05f07200a6d1c0c16f54b8)...done
[root@node1 ~]#
[root@node2 ~]# ls
anaconda-ks.cfg  busybox-1-28.tar.gz  calico.tar.gz  nginx-1.21.6.tar
[root@node2 ~]# ctr -n k8s.io images import nginx-1.21.6.tar	(注意所有工作节点都需要)容器运行时导入nginx:1.21.6的镜像
unpacking docker.io/library/nginx:1.21.6 (sha256:94b808e393739b5363decf631a746d0                                                                                   241083d40eb05f07200a6d1c0c16f54b8)...done
[root@node2 ~]#

三、master节点上使用nginx1.21.6的镜像运行nginx的容器

[root@master1 ~]# kubectl run nginx --image=docker.io/library/nginx:1.21.6	k8s运行nginx1.21.6的镜像生成nginx的容器
pod/nginx created
[root@master1 ~]# kubectl get pod				查看pod信息
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          35s		一个 状态正在运行

四、查看kubectl运行的帮助

[root@master1 ~]# kubectl run -h		查看kubectl运行的帮助

五、master1节点上查看pod的详细信息

[root@master1 ~]# kubectl get pod -o wide -w	 动态查看pod的详细信息(ctrl +c 中断)
NAME    READY   STATUS    RESTARTS   AGE   IP             NODE    NOMINATED NODE                                                                                      READINESS GATES
nginx   1/1     Running   0          65s   10.244.104.2   node2   <none>                                                                                              <none>
^C[root@master1 ~]# kubectl get pod -o wide	查看pod的详细信息	
NAME    READY   STATUS    RESTARTS   AGE    IP             NODE    NOMINATED NOD                                                                                   E   READINESS GATES
nginx   1/1     Running   0          117s   10.244.104.2   node2   <none>                                                                                              <none>

六、master1访问nginx容器

[root@master1 ~]# curl 10.244.104.2	访问nginx容器
nginx的测试页面
^C

七、在10.244.104.2上创建“hello world 的测试页面”

[root@master1 ~]# kubectl exec -it nginx -- bash	进入nginx的容器里
root@nginx:/# echo "hello world!" > /usr/share/nginx/html/index.html	创建hello world的测试页面
root@nginx:/# exit				退出
exit
[root@master1 ~]# curl 10.244.104.2	访问容器
hello world!
[root@master1 ~]#

八、查看nginx的描述信息:

[root@master1 ~]# kubectl describe pod nginx		查看nginx pod的描述信息
Events: 查看故障信息,主要用于排错
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  34m   default-scheduler  Successfully assigned default/nginx to node2
  Normal  Pulled     34m   kubelet            Container image 使用nginx容器"docker.io/library/nginx:1.21.6" already present on machine
  Normal  Created    34m   kubelet            Created container nginx	创建nginx容器
  Normal  Started    34m   kubelet            Started container nginx		启动nginx容器
[root@master1 ~]#

九、删除nginx pod(在生产线上最危险的命令)

[root@master1 ~]# kubectl delete pod nginx 	危险命令,pod一旦删除恢复不了!!!
删除nginx pod(在生产线上最危险的命令)
pod "nginx" deleted
[root@master1 ~]#
[root@master1 ~]# kubectl get pod
No resources found in default namespace.

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇