Kubernetes----Pod,资源对象文件

news2024/9/21 19:25:26

kubectl容器管理

kubectl用于控制Kubernetes集群的命令行工具

语法格式

        kubectl [command] [type] [name] [flages]

        command: 子命令,如create,get,describe,delete

        type: 资源类型,可以表示为单数,复数形式或缩写形式

        name: 资源的名称,如果省略,则显示所有资源信息

        flags:指定可选标志,或者附加的参数

管理命令(一)

子命令说明备注
help用于查看命令及子命令的帮助信息
cluster-info显示集群的相关配置信息
version查看服务器及客户端的版本信息
api-resources查看当前服务器上所有的资源对象
api-versions查看当前服务器上所有资源对象的版本
config管理当前节点上kubeconfig 的认证信息

详解Pod

pod是k8s中最小的管理元素,由一个或者多个容器组成,是一个服务的多个进程的聚合单位

同一个pod共享网络IP及权限

同一个pod共享主机名称

同一个pod共享存储设备

Pod创建过程

为什么要使用pod?

容器服务之间有相关性

启动容器的时候需要初始化或进行相关配置

pod的生命周期

pod对象从创建开始至终止的时间范围称其为生命周期

在这断时间中,pod处在多种不同的状态,并执行相关操作

创建主容器为必须操作,其他为可选操作(初始化 启动后勾子 存活性探测 就绪性探测 终止前勾子)

 Pod创建过程与状态

Pod相位状态

 

 pending 容器创建过程中,但它尚没被调用完成

running 所有容器都已经被kubelet创建完成

succeeded 所有容器都已经成功终止了,并不会被重启 (执行一次退出)

failed pod 中的所有容器中至少有一个容器退出是非0状态

Unknown 无法正常获取到pod对象的状态信息

Pod管理命令(二)

系统中的核心服务都是运行在pod中

子命令说明备注
run创建Pod资源对象一般用来创建 Pod 模板
get查看资源对象的状态信息可选参数: -o 显示格式
describe查询资源对象的属性信息
logs查看容器的报错信息可选参数: -c 容器名称

排错三板斧99.99% 问题通过 get describe logs提示解决

# 创建 Pod
[root@master ~]# kubectl run myweb --image=myos:httpd
pod/myweb created
[root@master ~]# kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
myweb   1/1     Running   0          26s
# 创建交互式 Pod
[root@master ~]# kubectl run mypod -it --image=myos:v2009
If you don't see a command prompt, try pressing enter.
[root@mypod /]# : 这里已经进入Pod了

# 查询 Pod 信息
[root@master ~]# kubectl get pods
NAME    READY   STATUS    RESTARTS     AGE
mypod   1/1     Running   1 (3s ago)   18s
myweb   1/1     Running   0            68m
[root@master ~]# kubectl get pods -o name
pod/mypod
pod/myweb
[root@master ~]# kubectl get pods -o wide
NAME    READY   STATUS    RESTARTS      AGE   IP           NODE
mypod   1/1     Running   1 (39s ago)   54s   10.244.1.2   node-0001
myweb   1/1     Running   0             69m   10.244.2.2   node-0002

# 查询 pod 的属性信息
[root@master ~]# kubectl describe pod myweb
Name:         myweb
... ...
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  18s   default-scheduler  Successfully assigned default/myweb to node-0002
  Normal  Pulling    17s   kubelet            Pulling image "myos:httpd"
  Normal  Pulled     17s   kubelet            Successfully pulled image "myos:httpd" in 153.394005ms
  Normal  Created    17s   kubelet            Created container linux
  Normal  Started    17s   kubelet            Started container linux

# 查询 pod 的日志信息
[root@master ~]# kubectl logs myweb
[root@master ~]# 

名称空间 

# 查询节点信息
[root@master ~]# kubectl get namespaces 
NAME              STATUS   AGE
default           Active   44m
kube-node-lease   Active   44m
kube-public       Active   44m
kube-system       Active   44m

# 查询 kube-system 名称空间下 Pod 信息
[root@master ~]# kubectl -n kube-system get pods
NAME                             READY   STATUS    RESTARTS   AGE
coredns-54b6487f4d-t7f9m         1/1     Running   0          120m
coredns-54b6487f4d-v2zbg         1/1     Running   0          120m
etcd-master                      1/1     Running   0          120m
kube-apiserver-master            1/1     Running   0          120m
kube-controller-manager-master   1/1     Running   0          120m
kube-flannel-ds-8x4hq            1/1     Running   0          111m
kube-flannel-ds-c5rkv            1/1     Running   0          111m
kube-flannel-ds-sk2gj            1/1     Running   0          111m

系统命名空间

        default 默认的 不声明命名空间的pod都在这

        kube-node-lease为高可用提供心跳检测的命名空间

        kube-public公共数据,所有用户都可以读取它

        kube-system系统服务对象所示用的命名空间,系统核心服务都运行在这

查看命名空间

        kubectl get namespace

查看命名空间中pod信息

        kubectl -n kube-system get pods

管理命令(三)

子命令说明备注
exec在某一个容器内执行特定的命令可选参数: -c 容器名称
cp在容器和宿主机之间拷贝文件或目录可选参数: -c 容器名称
delete删除资源对象可选参数: -f 文件名称
create创建资源对象必选参数: -f 文件名称
apply(创建/更新)资源对象必选参数: -f 文件名称
# 使用资源文件创建/更新Pod
[root@master ~]# vim mypod.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
  - name: linux
    image: myos:latest
    stdin: true
    tty: true

[root@master ~]# kubectl apply -f mypod.yaml 
Warning: resource pods/mypod is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
The Pod "mypod" is invalid: spec.containers: Forbidden: pod updates may not add or remove containers
[root@master ~]# sed 's,mypod,pod1,' mypod.yaml |kubectl apply -f -
pod/pod1 created

# 在Pod中执行命令
[root@master ~]# kubectl exec myweb -- ls
index.html
info.php
# 在Pod中执行一个交互式命令
[root@master ~]# kubectl exec -it myweb -- bash
[root@myweb html]# : 这里已经进入Pod了

# 拷贝Pod文件到本地
[root@master ~]# mkdir -p website
[root@master ~]# kubectl cp myweb:index.html website/index.html
[root@master ~]# tree website
config
└── index.html
# 拷贝目录到Pod
[root@master ~]# kubectl cp website mypod:./
[root@master ~]# kubectl exec mypod -- tree website
website
`-- index.html

# 删除Pod
[root@master ~]# kubectl delete -f mypod.yaml 
pod "mypod" deleted
[root@master ~]# kubectl delete pod1 myweb
pod "pod1" deleted
pod "myweb" deleted

Pod资源文件

使用资源文件定义Pod

最小资源文件

kind: Pod
apiVersion: v1
metadata: 
  name: pod-name
spec:
  containers:
  - name: containers-name
    image: mirror-where
status: {}

k8s定义关键字key采用小驼峰  vaule采用大驼峰形式

你必须要掌握

  1. ---                   #yaml文件开始标识
  2. kind: Pod        #资源对象类型
  3. apiVersion: v1  #版本
  4. metadata:        #元数据
  5. name: myweb   #资源对象名称
  6. spec:                 #规格
  7. terminationGracePeriodSeconds: 0     #宽限期
  8. restartPolicy: Always      #容器结束后的重启策略
  9. containers:                 #容器定义
  10. - name: apache           #容器名称
  11. image: myos:httpd        # 创建容器的镜像
  12. ports:                             #容器端口配置
  13. - protocol: TCP            # 协议
  14. containerPort: 80          # 容器服务监听的端口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年4月份上新的图像领域分割模型设计系列论文(一)

来源:投稿 作者:王老师 编辑:学姐 论文1 论文标题: Learning Semantic-Aware Knowledge Guidance for Low-Light Image Enhancement 论文链接: https://arxiv.org/pdf/2304.07039v1.pdf代码链接: https://…

Java性能优化之序列化优化

1、Java 序列化及其缺陷 Java 提供了一种序列化机制,这种机制能够将一个对象序列化为二进制形式(字节数组),用于写入磁盘或输出到网络,同时也能从网络或磁盘中读取字节数组,反序列化成对象,在程…

无法启动此程序,因为计算机中丢失VCRUNTIME140.dll”错误的解决办法

vcruntime140.dll是什么什么文件呢?为什么电脑在运行一些游戏或许软件的时候会出现丢失vcruntime140.dll,然后游戏或许软件运行失败?这个dll文件是电脑重要的运行库文件。丢失了会导致很多程序无法运行。 首先打开电脑浏览器以后在顶部网页栏目输入&am…

MATLAB实现图像滤波及噪声消除

图像增强是指根据特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。因此,这类处理是为了某种应用目的而去改善图像质量的。处理的结果使图…

ROS学习第三十六节——Gazebo仿真环境搭建

https://download.csdn.net/download/qq_45685327/87719408 1.直接添加现成模型 1.1加入环境模型 在工程文件中创建worlds文件夹&#xff0c;并把之前下载的box_house.world文件放入 1.2编写launch文件 deamo03_car_world.launch <launch><!-- 将 Urdf 文件的内容…

CCGNet用于发现共晶材料中的coformer

共晶工程&#xff08;cocrystal engineering&#xff09;在制药&#xff0c;化学和材料领域有广泛应用。然而&#xff0c;如何有效选择coformer一直是一个挑战性课题。因此&#xff0c;作者开发了一个基于GNN的深度学习框架用于快速预测共晶的形成。为了从现有报告的6819个正样…

超详细Redis入门教程——Redis命令(下)

前言 本文小新为大家带来 超详细Redis入门教程——Redis命令 相关知识&#xff0c;具体内容包括简单动态字符串 SDS&#xff0c;集合的底层实现原理&#xff0c;BitMap 操作命令&#xff0c;HyperLogLog 操作命令&#xff0c;Geospatial 操作命令&#xff0c;发布/订阅命令&…

2023.04.23 学习周报

文章目录 摘要文献阅读1.题目2.摘要3.介绍4.模型4.1 研究区域4.2 自相关分析4.3 LSTM 5.实验与讨论5.1 高架道路不同位置空气污染物的变化5.2 高架道路不同位置空气污染物的相关性5.3 高架道路不同位置空气污染物预测 6.结论7.展望 度规张量1.曲率2.度量张量3.代码实现4.平行四…

基于遗传算法的梯级水电站群优化调度研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

王道计组(23版)7_I/O系统

I/O控制方式 数据传输率低的外设&#xff1a; 程序查询方式 程序中断方式&#xff1a;外设准备就绪则主动向CPU发送中断请求 数据传输率高的外设&#xff1a; DMA方式&#xff1a;主存和I/O设备有一条直接数据通路&#xff0c;无需调用中断 通道方式&#xff1a;每个通道挂接若…

CTFSHOW web入门——web30

代码审计 把flag、system、php都给过滤了 passthru()函数同system()函数类似&#xff0c;都可以用来执行外部命令的&#xff0c;因此可以用passthru来代替system。 因此构造payload&#xff1a;?cpassthru(cat f*); 查看页面源代码即可获得flag

ROS学习第三十四节——URDF与Gazebo基本集成流程

https://download.csdn.net/download/qq_45685327/87718593 1.创建功能包 创建新功能包&#xff0c;导入依赖包: urdf xacro gazebo_ros gazebo_ros_control gazebo_plugins 2.编写URDF文件 demo01_helloworld.urdf <robot name"mycar"><link name"…

Android 一个获取网址时间的Demo

Android 一个获取网址时间的Demo 文章目录 Android 一个获取网址时间的Demo通过一个网址获取时间的代码关于Android NTP 时间Android 同步时间代码 前段时间有个客户想用局域网同步Android 设备的时间&#xff0c;开发后把这个demo分享一下。 效果&#xff1a; 这里也获取了阿…

Xshell中的基本命令

whoami 当我们刚登录上Xshell的时候&#xff0c;我们应该做什么呢&#xff1f;&#xff1f; 我们上次说了如何增加使用者&#xff0c;和删除使用者&#xff0c;今天我们说一下其他的基本命令。 我们刚开始登录的时候可以用root登录 那么我们怎么看自己事谁呢&#xff1f; …

C/C++占位符,%x和%p的区别

遇到的问题 今天遇到了一个很奇怪的问题&#xff0c;当使用malloc分配了一个堆空间后&#xff0c;分别尝试用cout和printf尝试打印该地址&#xff0c;出现了两个地址不一样的情况&#xff1a; int *pp (int*)malloc(10*sizeof(int)); *pp 1234; cout << pp << …

35. 搜索插入位置 58. 最后一个单词的长度

目录 35. 搜索插入位置 思路 代码 58. 最后一个单词的长度 思路1 代码1 思路2 代码2 35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。…

存钱罐出口欧盟CE认证ROHS标准测试

近年来生活水平提高&#xff0c;人们手头上的余钱也多了起来&#xff0c;家长们通常会给小孩子买存钱罐&#xff0c;培养小孩子的理财能力&#xff0c;养成良好的财富观&#xff0c;一般的存钱罐都被设计用来存放硬币&#xff0c;一般分为陶瓷&#xff0c;塑料和金属。上端有缝…

电脑蓝屏怎么办?一招教你修好

很多用户遇到电脑蓝屏问题之后不懂怎么去进行解决&#xff1f;电脑蓝屏之后&#xff0c;我们只需要花一分钟制作一个启动盘&#xff0c;然后用这个启动盘来进行系统的重装就可以了。那么具体要怎么去操作呢&#xff1f;以下带来具体的操作方法教学。 准备工作&#xff1a; 1、U…

备忘录设计模式(Memento Pattern)[论点:概念、组成角色、示例代码、框架中的运用、适用场景]

文章目录 概念组成角色示例代码框架中的运用适用场景 概念 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;主要用于保存对象的内部状态&#xff0c;以便在需要时恢复到先前的状态。这种模式有助于实现撤销、恢复或回滚操作&#xff0c;同…

软件测试之基础概念学习篇(需求 + 测试用例 + 开发模型 + 测试模型 + BUG)

文章目录 1. 什么是软件测试2. 软件测试和软件开发的区别3. 软件测试和软件调试的区别4. 什么是需求1&#xff09;以需求为依据设计测试用例 5. 测试用例是什么6. 什么是 BUG&#xff08;软件错误&#xff09;7. 五个开发模型1&#xff09;瀑布模型2&#xff09;螺旋模型3&…