K8S 使用(1)- 基本命令

news2025/1/12 22:02:45

根据上文完成部署k8s后,我们需要了解如何使用k8s.首先我们需要了解如何使用K8S的一些基础命令及主要概念。

尚不清楚如何部署的请参考:单master部署简要步骤

如果您熟悉了k8s基本命令,可以跳过此章节。

目录

先看一下这张图

2. 节点  node

3. pod - 最小可部署的计算单元

4. 服务  service

5. 部署控制器 deployment

4. 任务/作业  job


先看一下这张图

1. 命名空间  namespace

此处的命名空间就如同代码语言中命名空间,主要起分组的作用。

  • 创建一个namespace
kubectl create namespace <namespace名称>

执行后,系统会提示:
namespace/dev created

  • 获取namespace
kubectl get ns

运行结果示例:

NAME              STATUS   AGE
default           Active   18h
kube-flannel      Active   59m
kube-node-lease   Active   18h
kube-public       Active   18h
kube-system       Active   18h

大家可以看到,此处ns就是namesapce的缩写

默认的namespace是default

2. 节点  node

node是k8s主要的载体单位,承载1个或多个pod。有master和子节点的区分。常规master节点不安装业务pod。

节点信息通过k8s api控制(增删查改),并保存在etcd上。

节点可以是真是主机,也可以是虚拟设备。

Pod、容器与Node的关系图:

查看节点信息

kubectl describe node <节点名称>

3. pod - 最小可部署的计算单元

1 pod = 1 Pause容器 + n * User Container  

Pod里的多个业务容器:共享Pause容器的IP、共享Pause容器挂接的Volume(数据卷)

  • 在此namespace下创建并运行一个nginx的Pod
kubectl run pod --image=nginx:latest -n dev


kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/pod created

  • 查看namespace ( 这里是dev)下的pod
kubectl get pod -n dev


NAME  READY   STATUS    RESTARTS   AGE
pod-xx   1/1     Running   0          21s

此外常用参数还有--show-labels,显示pod标签

[root@n22 ~]# kubectl get pods --show-labels
NAME                   READY   STATUS      RESTARTS   AGE    LABELS
hello-28104718-2v2xp   0/1     Completed   0          5m8s   controller-uid=ee2cf0e0-59de-4656-8713-ae0c182edae5,job-name=hello-28104718

  • 删除指定的pod
kubectl delete pod nginx-7cbb8cd5d8-b28pc

成功提示:pod "nginx-7cbb8cd5d8-b28pc" deleted

  • 删除指定的namespace,这里是dev
kubectl delete ns dev

成功提示:namespace "dev" deleted

4. 服务  service

service引入主要是解决pod的动态变化,提供统一的访问入口。

5. 部署控制器 deployment

一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。

使用场景:
    1、创建一个Deplyment对象来生成对应的ReplicaSet,并完成Pod副本的创建过程。
    2、检查Deployment的状态来看部署动作是否完成(Pod副本的数量是否达到预期的值)。
    3、更新Deployment以创建新的Pod(eg:镜像升级)。
    4、如果当前Deployment不稳定,则回滚到一个早先的Deployment版本。
    5、暂停和恢复Deployment,以便于一次性修改多个PodTemplateSpec 的配置项,之后再恢复Deployment,进行新的发布。
    6、扩容和所容。扩容情况下,Deployment可以应对更高的负载。
    7、查看Deployment的状态,以此作为发布是否成功的指标。
    8、清理不再需要的旧版本ReplicaSets。

这里需要说明几点:

     1、development不是必须的

     2、development可以被用来管理多个pod,避免用户单独维护pod

  • 查看创建的deployment
kubectl get deployments
  • 创建deployment

        一般采用yaml配置文件的方式创建development ,配置文件参考:集群管理 | Kubernetes

kubectl apply -f nginx-deployment.yaml 
  • 更新deployment

        更新版本

kubectl set image deployment/nginx nginx=nginx:1.22.1

        查看更新进度

kubectl rollout status deployment/nginx

        编辑deployment来更新,编辑保存后会自动更新配置

kubectl edit deployment/nginx
  • 删除deployment

如果同一个配置文件中包含多个资源对象,可以批量删除

kubectl delete -f https://k8s.io/examples/application/nginx-app.yaml

单个deployment删除

kubectl delete deployment/nginx

4. 任务/作业  job

任务是定时执行指定任务的一个功能,比较常用的。Linux服务之前通常使用crontab完成。 

使用yanml文件进行配置

应用配置文件:

kubectl apply -f k8scron-job-cron.yaml 

删除job

# 删除指定job

kubectl delete job <job-name>

# 删除已完成job
kubectl delete job $(kubectl get jobs | awk '$3 ~ 1' | awk '{print $1}')

# 删除未完成job
kubectl delete job $(kubectl get jobs | awk '$3 ~ 0' | awk '{print $1}')

可以看作资源对象的有:Node、Pod、Replication Controller、Service

参考文章:

 K8S核心概念及名词讲解(kubernetes 前言篇)_爵影子的博客-CSDN博客 k8s之Service_k8s service_江南道人的博客-CSDN博客

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

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

相关文章

2.2、IOC容器的实现流程

​一、类图 二、容器的实现接口 Spring容器并不是只有一个。Spring自带多个容器实现&#xff0c;可以归位两种不同的类型。 &#xff08;1&#xff09;Bean工厂&#xff08;由org.springframework.beans.factory.BeanFactory接口定义&#xff09;是简单的容器实现工厂&#x…

数学内容的概述

前言 作为一名文科生&#xff0c;学习编程最大的阻碍莫过于数学知识。 学习数学的必要性 跟开发APP和后台服务器相比&#xff0c;机器学习、深度学习需要大量的数学知识。 数据处理和清洗&#xff1a;数据分析涉及大量的数据处理和清洗工作&#xff0c;需要掌握基本的数学概…

linux系统LAMP架构

文章目录 一、LAMP简介与概述二、LAMP各组件主要作用1.构建LAMP平台顺序 三、编译安装Apache httpd服务1.将所需软件安装包下载到/opt目录下解压2.移动两个文件并改名3.安装依赖环境4.编译安装5.做软连接&#xff0c;使文件可执行6.优化配置文件路径&#xff0c;并把httpd服务的…

《面试1v1》Redis主从架构

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

crossover虚拟机软件好用吗?22.1.1版本有哪些优点

苹果系统虽然安全稳定&#xff0c;但有些应用程序并不提供苹果系统的安装包&#xff0c;使用双系统或在苹果电脑安装虚拟机可以帮我们提升设备使用效率&#xff0c;除了这两种解决方案外&#xff0c;还可以使用类虚拟机软件crossover&#xff0c;crossover mac的优点在于不会占…

使用HTTP/2实现服务端主动推送消息给客户端

77. 使用HTTP/2实现服务端主动推送消息给客户端 HTTP/2协议的服务器主动推送机制是通过服务器在接收到客户端请求后&#xff0c;主动向客户端推送相关资源的方式来实现的。下面将详细解释如何在服务器端和客户端实现HTTP/2的服务器主动推送&#xff0c;并给出相应的代码示例。…

华为OD机试真题(Java),素数伴侣(100%通过+复盘思路)

一、题目描述 若两个正整数的和为素数&#xff0c;则这两个正整数称之为“素数伴侣”&#xff0c;如2和5、6和13&#xff0c;它们能应用于通信加密。现在密码学会请你设计一个程序&#xff0c;从已有的 N &#xff08; N 为偶数&#xff09;个正整数中挑选出若干对组成“素数伴…

老鸟是这样实现springboot日志打印的~

文章目录 前言一、实现一个全局日志打印二、使用步骤1. 新增一个自定义注解2. 拦截注解,并实现相应的打印日志功能3. 使用 总结 前言 项目中有时候为了与前端,与后端(微服务/远程调用http) 等撕逼,我们不得不做好应对措施,最终的就是打印清晰我们的入参出参日志,这为以后撕逼,…

Nik Silver Efex 黑白胶片效果滤镜

Nik Silver Efex 为获得优质黑白效果而精心设计算法&#xff0c;是世界领先级的黑白胶片滤镜集。 内置 64 个黑白&#xff08;包括单色、双色等&#xff09;预设供选择&#xff0c;主要分为经典 Classic、现代 Modern、复古 Vintage、阿弗格 En Vogue等四大风格&#xff0c;另外…

银行数字化转型导师坚鹏:兴业银行《天才与算法》读书拆解培训

兴业银行杭州分行《天才与算法》读书拆解培训圆满结束 兴业银行股份有限公司&#xff08;简称“兴业银行”&#xff09;成立于1988年8月&#xff0c;2022年总资产9.27万亿元&#xff0c;是经国务院、中国人民银行批准成立的首批股份制商业银行之一&#xff0c;总行设在福州市。…

【MySQL 高级(进阶)SQL 语句】

目录 一、命令操作1、select ----显示表格中一个或数个字段的所有数据记录2、select 指定字段的显示顺序3、select distinct 不显示重复的数据记录4、where 有条件的查询5、and和or 命令 ---- 且和或6、in 显示已知的值的数据记录7、between 显示两个值范围内的数据记录8、通配…

最短路径算法(Python数学建模)

0. 前言 最短路径算法是一种用于计算图中两个节点之间最短路径的算法。在图论中&#xff0c;最短路径通常指的是图中连接两个节点的路径中具有最小权重&#xff08;或成本&#xff09;的路径。 以下是两种常见的最短路径算法&#xff1a; Dijkstra算法&#xff1a;Dijkstra算…

Python对csv文件一键多值保存为json本地文件再读取加速效率(3)

最近发现做办公自动化表格匹配的时候还是csv格式的文件最快、效率是最高的 今天接到一个需求就是大致内容之这样的 1、给我一张表格直邮一列A列&#xff0c;内容是运单号 2、需要用相同的单号去另外一张表格匹配数据 3、其实就是Excel中的常见的vlookup 但是想要匹配的表格有几…

D351周赛复盘:美丽下标对数目(互质/数学运算)+数组划分若干子数组

文章目录 6466.美丽下标对数目思路互质的含义 python写法cpp写法 6910. 将数组划分成若干好子数组的方式思路完整版ans (ans * (ls[i 1] - ls[i]))含义重要问题1&#xff1a;为什么ls[i 1] - ls[i]能代表所有这两个1划分出来的子数组&#xff1f;重要问题2&#xff1a;为什么…

java 版本企业招标投标管理系统源码,多个行业+及时准确+全程电子化

计算机与网络技术的不断发展&#xff0c;推动了社会各行业信息化的步伐。时至今日&#xff0c;电子政务、电子商务已经非常普及&#xff0c;云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心&#xff0c;如何将传统行业与互联网科技有效结合起来&#xff0c;产生1…

谷歌浏览器无法翻译成中文,谷歌翻译,最新(沉浸式翻译和划词翻译,chrome无法翻译,谷歌浏览器无法翻译此网页)

简介&#xff1a;谷歌浏览器自带的翻译功能&#xff0c;对我们来说用处很大&#xff0c;但有的时候突然就会变成“无法翻译此网页”&#xff0c;之前给大家提供过两种无法翻译此网页的解决方案&#xff0c;这次再给大家分享下两款别的翻译方法&#xff1b; 一、上次介绍&#x…

如何用ChatGPT使开发效率提高50%以上?

简介 ChatGPT是一个大型语言模型&#xff0c;由OpenAI开发。它被训练用于进行对话式交互&#xff0c;能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景&#xff0c;包括但不限于&#xff1a;智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知…

搭建个人音乐库-navidrome

文章目录 前言navidrome 服务搭建准备音乐材料客户端 前言 搭建个人音乐库。好玩而已。 没有做过多的筛选。在navidrome 和 koel 之间&#xff0c;选择了navidrome来搭建音乐库。 主要分为这几个步骤&#xff1a; 在服务器上搭建navidrome服务(web端)。准备音乐材料。手机上…

免费去除视频水印的几个方法!记得收藏好!

怎么去除视频水印&#xff1f;相信大家应该不难发现&#xff0c;现在很多网上的视频保存下来都会有水印&#xff0c;原本是想拿这些视频当作素材来使用&#xff0c;结果就是让人很苦恼&#xff0c;但其实我们可以借助记灵在线工具将它们的水印去掉&#xff0c;下面我给大家分享…

谷歌带走了我最爱的全文翻译,连夜找来1个复活方法和6个替代神器!

想必前段时间大家都被谷歌翻译退出中国的相关文章刷屏过了 虽然表面上谷歌官方给出的原因是中国用户太少、使用率太低了&#xff0c;所以才选择退出中国市场。但根据网上的猜测&#xff0c;更大的可能应该是因为给谷歌翻译接入的 googleapis.com 在9月28日因某种神秘力量而国内…