Kubernetes:(四)kubectl命令

文章目录

  • 一、kubectl命令
    • 1.查看版本信息 kubectl version
    • 2.列出 Kubernetes API 中所有可用的资源及其相关信息 kubectl api-resources
    • 3.配置kubectl自动补全 source <(kubectl completion bash)
    • 4.查看集群信息 kubectl cluster-info
    • 5.node节点查看日志 journalctl -u kubelet -f
    • 6.基本信息查看
    • 7.查看 master 节点状态 kubectl get cs
    • 8.查看命令空间 kubectl get ns
    • 9.创建命名空间yy kubectl create ns yy
    • 10.删除命名空间yy kubectl delete ns yy
    • 11.在命名空间kube-public 创建副本控制器(deployment)来启动Pod(nginx-1)
    • 12.描述某个资源的详细信息 kubectl describe
    • 13.查看命名空间kube-public 中的pod 信息
    • 14.kubectl exec可以跨主机登录容器,docker exec 只能在容器所在主机上登录
    • 15.删除(重启)pod资源,由于存在deployment/rc之类的副本控制器,删除pod也会重新拉起来
    • 16.根据副本控制器删除pod kubectl delete deployments
    • 17.若pod因为处于terminate状态,无法删除
    • 18.扩缩容 kubectl scale
    • 19.查看pod日志
  • 二、项目的生命周期
  • 一.创建 kubectl create命令
    • 1.发布 kubectl expose命令
    • 2.查看pod网络状态详细信息和 Service暴露的端口
    • 3.查看关联后端的节点
    • 4.查看 service 的描述信息
  • 二.更新 kubectl set
  • 三.回滚 kubectl rollout
    • 1.查看历史版本
    • 2.执行回滚到上一个版本
    • 3.执行回滚到指定版本
    • 4.检查回滚状态
    • 5.删除 kubectl delete

一、kubectl命令

1.陈述式管理方式:通过命令式语句来实现对资源的管理(对资源的增、删、查操作比较方便,但对改的操作就不容易了)
2.声明式资源管理方式:通过资源配置的yaml和json格式来完成

kubectl 的命令大全
kubectl --help
k8s中文文档: http://docs.kubernetes.org.cn/683.html

在这里插入图片描述
k8s pod故障一般先获取pod信息,然后查看pod状态,如果是pending状态,用kubectl describe查看报错信息,如果获取不到信息,就用kubectl logs去查看

1.查看版本信息 kubectl version

kubectl version

在这里插入图片描述

2.列出 Kubernetes API 中所有可用的资源及其相关信息 kubectl api-resources

kubectl api-resources

在这里插入图片描述

3.配置kubectl自动补全 source <(kubectl completion bash)

source <(kubectl completion bash)                         #临时配置kubectl自动补全
echo 'source <(kubectl completion bash)' >> ~/.bashrc     #永久配置kubectl自动补全

4.查看集群信息 kubectl cluster-info

kubectl cluster-info

在这里插入图片描述

5.node节点查看日志 journalctl -u kubelet -f

journalctl -u kubelet -f

在这里插入图片描述

6.基本信息查看

kubectl get <resource> [-o wide|json|yaml] [-n namespace]

获取资源的相关信息,-n 指定命令空间,-o 指定输出格式
resource可以是具体资源名称,如pod nginx-xxx;也可以是资源类型,如pod;或者all(仅展示几种核心资源,并不完整)
–all-namespaces 或 -A :表示显示所有命令空间,
–show-labels :显示所有标签
-l app :仅显示标签为app的资源
-l app=nginx :仅显示包含app标签,且值为nginx的资源
在这里插入图片描述

kubectl get all            #获取 Kubernetes 集群中所有资源类型的实例

在这里插入图片描述

kubectl get svc -A          #显示所有命名空间的服务

在这里插入图片描述

kubectl get svc             #显示当前命名空间的服务,一般是default

在这里插入图片描述

kubectl get pod --show-labels             #显示default的pod的标签

在这里插入图片描述

kubectl get pod -A -l app                 #根据-l后面的参数进行模糊查询

在这里插入图片描述

7.查看 master 节点状态 kubectl get cs

kubectl get cs

在这里插入图片描述

8.查看命令空间 kubectl get ns

kubectl get ns

在这里插入图片描述

9.创建命名空间yy kubectl create ns yy

kubectl create ns yy

在这里插入图片描述

10.删除命名空间yy kubectl delete ns yy

kubectl delete ns yy

在这里插入图片描述

11.在命名空间kube-public 创建副本控制器(deployment)来启动Pod(nginx-1)

kubectl create deployment nginx-1 --image=nginx -n kube-public

在这里插入图片描述

kubectl run nginx-2 --image=nginx -n kube-public          #快速启动一个临时的pod,被删除不会重新创建

在这里插入图片描述
在这里插入图片描述

12.描述某个资源的详细信息 kubectl describe

kubectl describe deployments.apps nginx-1 -n kube-public    #deployments.apps是自动补全的,后面的.apps可以不加

在这里插入图片描述

kubectl describe pod nginx-1 -n kube-public          #一般用于查看错误信息

在这里插入图片描述

13.查看命名空间kube-public 中的pod 信息

kubectl get pods -n kube-public

在这里插入图片描述

14.kubectl exec可以跨主机登录容器,docker exec 只能在容器所在主机上登录

kubectl exec -it nginx-1 bash -n kube-public

在这里插入图片描述

15.删除(重启)pod资源,由于存在deployment/rc之类的副本控制器,删除pod也会重新拉起来

kubectl delete pod nginx-1-6664c49886-7xhjj -n kube-public

在这里插入图片描述

16.根据副本控制器删除pod kubectl delete deployments

kubectl delete deployments.apps nginx-1 -n kube-public

在这里插入图片描述

17.若pod因为处于terminate状态,无法删除

kubectl delete pod nginx-1-6664c49886-7xhjj -n kube-public --force --grace-period=0
#grace-period表示过渡存活期,默认30s,在删除pod之前允许POD慢慢终止其上的容器进程,从而优雅退出,0表示立即终止pod

18.扩缩容 kubectl scale

kubectl scale deployment nginx-1 --replicas=4 -n kube-public
kubectl scale deployment nginx-1 --replicas=1 -n kube-public

在这里插入图片描述
在这里插入图片描述

19.查看pod日志

kubectl logs nginx-7848d4b86f-hxzdr

在这里插入图片描述

二、项目的生命周期

项目的生命周期:创建–>发布–>更新–>回滚–>删除

一.创建 kubectl create命令

kubectl create --help

启动 nginx 实例,暴露容器端口 80,设置副本数 3

kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3

在这里插入图片描述

1.发布 kubectl expose命令

kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort------------------------------------------------------------------------------------------
-port=80是service在集群内部监听的端口
--target-port=80是Pod 监听的端口
Kubernetes 之所以需要 Service,一方面是因为 Pod 的 IP 不是固定的(Pod可能会重建),另一方面则是因为一组 Pod 实例之间总会有负载均衡的需求。
Service 通过 Label Selector 实现的对一组的 Pod 的访问。
对于容器应用而言,Kubernetes 提供了基于 VIP(虚拟IP) 的网桥的方式访问 Service,再由 Service 重定向到相应的 Pod。

在这里插入图片描述

●port
port 是 k8s 集群内部访问service的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service

●nodePort
nodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个 service。

●targetPort
targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器。

●containerPort
containerPort 是 Pod 内部容器的端口,targetPort 映射到 containerPort。

内部流量:port > targetPort > containerPort
外部流量:nodePort > targetPort > containerPort
在这里插入图片描述

service 的 type 类型:
●ClusterIP:提供一个集群内部的虚拟IP以供Pod访问(service默认类型)

●NodePort:一般临时使用,在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以访问Service。
每个端口只能是一种服务,端口范围只能是 30000-32767。

●LoadBalancer:通过设置LoadBalancer映射到云服务商提供的LoadBalancer地址。这种用法仅用于在公有云服务提供商的云平台上设置Service的场景。通过外部的负载均衡器来访问,通常在云平台部署LoadBalancer还需要额外的费用。
在service提交后,Kubernetes就会调用CloudProvider在公有云上为你创建一个负载均衡服务,并且把被代理的Pod的IP地址配置给负载均衡服务做后端。 SLB 公网地址 一般会使用公有云

●externalName:将service名称映射到一个DNS域名上,相当于DNS服务的CNAME记录,用于让Pod去访问集群外部的资源,它本身没有绑定任何的资源。 tgc.benet.com www.benet.com

访问内部虚拟IP和端口(默认80)
在这里插入图片描述
访问外部ip和端口
在这里插入图片描述

2.查看pod网络状态详细信息和 Service暴露的端口

kubectl get pods,svc -o wide

在这里插入图片描述

3.查看关联后端的节点

kubectl get endpoints

在这里插入图片描述

4.查看 service 的描述信息

kubectl describe svc nginx

在这里插入图片描述

二.更新 kubectl set

kubectl set --help

获取修改模板

kubectl set image --help

在这里插入图片描述
查看当前 nginx 的版本号

curl -i http://192.168.44.40:31881/

在这里插入图片描述
将nginx 版本更新为 1.15 版本(更新Deployment 中的名为 nginx 容器 )

kubectl set image deployment nginx nginx=nginx:1.15

在这里插入图片描述
处于动态监听 pod 状态,由于使用的是滚动更新方式,所以会先生成一个新的pod,然后删除一个旧的pod,往后依次类推

kubectl get pods -w

在这里插入图片描述

三.回滚 kubectl rollout

kubectl rollout --help

1.查看历史版本

kubectl rollout history deployment/nginx         #两个版本

在这里插入图片描述

2.执行回滚到上一个版本

kubectl rollout undo deployment/nginx

在这里插入图片描述
在这里插入图片描述

3.执行回滚到指定版本

kubectl rollout undo deployment/nginx --to-revision=2    #history的版本

在这里插入图片描述

4.检查回滚状态

kubectl rollout status deployment/nginx

在这里插入图片描述

5.删除 kubectl delete

删除副本控制器(删除deployment里的所有名为nginx的pod)

kubectl delete deployment/nginx

删除service中的名为nginx-service

kubectl delete svc/nginx-service
kubectl get all

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网人辞职的20条理由,你中了几条?

互联网行业压力大、内卷是众所周知的&#xff0c;想要辞职的念头往往只在一瞬间。 他们想要离职的理由虽然千奇百怪&#xff0c;但每一条都很扎心。 小码在网上搜集了互联网人想要辞职的20条理由&#xff0c;来看看你中了几条吧&#xff1f; 最能戳中你的“辞职理由”是什么呢…

https://huggingface.co/上的模型无法用linux服务器clone怎么办(只需要稍微改一下网址,就可以切换到镜像下载)

问题描述&#xff1a; 在ubuntu系统上&#xff0c;使用如下命令&#xff0c;克隆仓库&#xff0c;报无法访问错误&#xff1a; git clone https://huggingface.co/distilbert/distilroberta-base通用解决方案&#xff1a; 把下面部分更换&#xff1a; https://huggingface.…

使用传感器融合进行3D激光雷达点云运动补偿

此示例展示了如何通过融合来自全球定位系统 (GPS) 和惯性测量单元 (IMU) 传感器的数据来补偿由于自我车辆运动而导致的点云失真。此示例的目标是补偿点云数据中的失真并准确地重新创建周围环境。 文章目录 概述坐标系预处理激光雷达数据预处理 GPS 数据结合 GPS、IMU 和激光雷达…

请看,小白是如何三步速成ComfyUI?

前言 ComfyUI —三步速成秘籍— 嘿&#xff0c;小伙伴们&#xff01; 我是一个刚刚踏入GEO AI实验室的新鲜面孔&#xff0c; 一个对AI设计充满无限好奇的新手。 在这个充满创意和科技感的实验室里&#xff0c; 我只用了短短三个步骤&#xff0c; 就掌握了ComfyUI 。 你…

输电线路火灾隐患监测系统功能与应用是什么?

答&#xff1a;大家好&#xff01;今天我们来聊聊输电线路火灾隐患监测系统TLKS-PMG-DF。这款装置凭借其强大的功能和广泛的应用领域&#xff0c;正在成为电力巡检和山火防控的重要工具。下面&#xff0c;我们就来详细了解一下它的功能与应用吧&#xff01;这款装置配备了先进的…

《高频电子线路》 —— 高频谐振功放

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 高频谐振功放 主要目的就是功率放大以及高效率。 基本电路原理 高频谐振功放的基本电路&#xff0c;总体上也是由放大管和并联谐振回路…

Java阶段三01

第3章-第1节 一、知识点 maven的简介、安装和使用、仓库管理、项目构建、多模块项目、依赖管理 二、目标 学习了解什么是maven 能够配置maven 使用maven创建项目 掌握maven创建多模块项目的方式 掌握maven的依赖管理和项目构建 三、内容分析 重点 maven的安装和使用 …

【Docker】构建Linux云桌面环境

目录 一、说明 二、离线安装Docker 1&#xff09;将下载的包上传到服务器上去 2&#xff09;安装docker 3) 启动docker 4&#xff09;配置加速器 三、安装云桌面镜像 四、启动云桌面 方式一&#xff1a;docker命令直接运行 方式二&#xff1a;docker-compose方式 五…

【ArcGIS Pro实操第4期】绘制三维地图

【ArcGIS Pro实操第4期】绘制三维地图 ArcGIS Pro绘制三维地图-以DEM高程为例参考 如何使用ArcGIS Pro将栅格数据用三维的形式进行表达&#xff1f;在ArcGIS里可以使用ArcScene来实现&#xff0c;ArcGIS Pro实现原理跟ArcScene一致。由于Esri未来将不再对ArcGIS更新&#xff0c…

“震惊!消费满额即领高额返现,循环购物模式揭秘“

购物满额赠高额返现&#xff0c;每日还能领现金&#xff1f;资金还能提现&#xff1f;这听起来简直像天方夜谭。商家难道真的在无条件发放资金&#xff1f; 大家好&#xff0c;我是电商策略专家吴军。 今天&#xff0c;我要揭秘一种前沿的商业模式——循环消费回馈模式。 这种…

Leetcode 第 420 场周赛题解

Leetcode 第 420 场周赛题解 Leetcode 第 420 场周赛题解题目1&#xff1a;3324. 出现在屏幕上的字符串序列思路代码复杂度分析 题目2&#xff1a;3325. 字符至少出现 K 次的子字符串 I思路代码复杂度分析 题目3&#xff1a;3326. 使数组非递减的最少除法操作次数思路代码复杂度…

Unity3D学习FPS游戏(3)玩家第一人称视角转动和移动

前言&#xff1a;上一篇实现了角色简单的移动控制&#xff0c;但是实际游戏中玩家的视角是可以转动的&#xff0c;并根据转动后视角调整移动正前方。本篇实现玩家第一人称视角转动和移动&#xff0c;觉得有帮助的话可以点赞收藏支持一下&#xff01; 玩家第一人称视角 修复小问…

代码随想录算法训练营第十二天(补) 二叉树| 二叉树理论知识、深度优先遍历、广度优先遍历

目录 一、二叉树理论基础 &#xff08;一&#xff09;二叉树的种类 二叉搜索树 平衡二叉搜索树 &#xff08;二&#xff09;二叉树的存储 &#xff08;三&#xff09;二叉树的遍历 &#xff08;四&#xff09;二叉树的定义 二、二叉树的递归遍历 三、二叉树的层序遍历 …

在线教育系统源码开发详解:网校培训平台搭建的核心技术

本篇文章&#xff0c;笔者将详细介绍在线教育系统源码的开发过程&#xff0c;重点聚焦网校培训平台搭建的核心技术&#xff0c;以期为有意从事在线教育行业的开发者提供实用的参考。 一、在线教育系统的构成 前端负责用户的交互体验&#xff0c;后端处理业务逻辑&#xff0c;…

利士策分享,赚大钱与赚小钱的哲学,选大还是小?

利士策分享&#xff0c;赚大钱与赚小钱的哲学&#xff0c;选大还是小&#xff1f; 在商海浮沉的浪潮中&#xff0c;时常能听到一些业界大佬发表关于财富积累的独到见解。 其中&#xff0c;有一种观点颇为引人注目&#xff0c;那便是“赚大钱比赚小钱容易”。 此言一出&#xf…

【vue】14.插槽:构建可复用组件的关键

今天看代码的时候碰到了插槽&#xff0c;有些看不懂&#xff0c;所以写下这篇文章&#xff0c;系统地梳理一下关于插槽的内容&#xff0c;也希望给大家带来一些帮助。 // 我碰到的插槽长这样 <template #default"scope">... </template> 一.什么是插槽…

Java项目实战II基于Spring Boot的美食烹饪互动平台的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今美食…

ssm基于ssm框架的滁艺咖啡在线销售系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1选题动因 1 1.2目的和意义 1 1.3论文结构安排 2 第2章 开发环境与技术 3 2.1 MYSQ…

echarts实现 水库高程模拟图表

需求背景解决思路解决效果index.vue 需求背景 需要做一个水库高程模拟的图表&#xff0c;x轴是水平距离&#xff0c;y轴是高程&#xff0c;需要模拟改水库的形状 echarts 图表集链接 解决思路 配合ui切图&#xff0c;模拟水库形状 解决效果 index.vue <!--/*** author:…

引入RFID技术,焕新消防应急物资管理方式

智能化应急消防管理系统在现代消防工作中扮演着至关重要的角色&#xff0c;引入射频识别&#xff08;RFID&#xff09;技术&#xff0c;并根据消防设备管理的具体状况及需求&#xff0c;广州一芯未来研发了一套RFID消防设备管理系统。 一、射频识别技术RFID简述 射频识别技术RF…