Kubernetes 常用操作大全:全面掌握 K8s 基础与进阶命令
Kubernetes(简称 K8s)作为一种开源的容器编排工具,已经成为现代分布式系统中的标准。它的强大之处在于能够自动化应用程序的部署、扩展和管理。在使用 Kubernetes 的过程中,熟悉常用操作对于高效地管理集群资源至关重要。本文将详细介绍 Kubernetes 的各种常用操作,帮助你在管理集群时应对各种场景。
目录
- Kubernetes 基本概念
- 集群操作
- 查看节点信息
- 管理节点
- Pod 的基本操作
- 创建 Pod
- 查看 Pod
- 删除 Pod
- Service 操作
- 创建 Service
- 查看 Service
- Deployment 的操作
- 创建 Deployment
- 更新和回滚 Deployment
- 缩容和扩容 Deployment
- 使用 ConfigMap 和 Secret
- 管理 Namespaces
- Helm 基本操作
- Kubernetes 日常排错与调试
- 小结
1. Kubernetes 基本概念
Kubernetes 是用于自动部署、扩展和管理容器化应用程序的平台。它包括以下核心概念:
- Node:Kubernetes 集群中的一个节点(物理或虚拟机)。
- Pod:Kubernetes 中最小的部署单元,一个 Pod 通常包含一个或多个容器。
- Service:用于将请求路由到 Pod 的负载均衡器。
- Deployment:用于声明和管理应用的部署方式。
2. 集群操作
2.1 查看节点信息
要查看 Kubernetes 集群中所有节点的信息,可以使用以下命令:
kubectl get nodes
- 显示集群中所有节点的状态和相关信息。
2.2 管理节点
-
标记节点:可以为节点添加标记,以便调度器做出调度决策。例如:
kubectl label nodes <node-name> disktype=ssd
-
污点节点:标记节点为不可调度,防止新的 Pod 被调度到该节点上:
kubectl taint nodes <node-name> key=value:NoSchedule
3. Pod 的基本操作
3.1 创建 Pod
可以通过编写 YAML 文件或直接使用命令创建 Pod。以下是通过 YAML 创建 Pod 的示例文件 pod.yaml
:
apiVersion: v1
kind: Pod
metadata:name: nginx-podlabels:app: nginx
spec:containers:- name: nginximage: nginx:1.21ports:- containerPort: 80
使用以下命令应用 YAML 文件:
kubectl apply -f pod.yaml
3.2 查看 Pod
-
列出所有 Pod:
kubectl get pods
-
获取 Pod 的详细信息:
kubectl describe pod <pod-name>
3.3 删除 Pod
要删除一个 Pod,可以使用 delete
命令:
kubectl delete pod <pod-name>
4. Service 操作
4.1 创建 Service
Service 允许不同 Pod 之间相互通信,或暴露应用程序以供外部访问。以下是创建一个 ClusterIP 类型 Service 的 YAML 文件 service.yaml
:
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: ClusterIP
使用以下命令应用 YAML 文件:
kubectl apply -f service.yaml
4.2 查看 Service
-
列出所有 Service:
kubectl get services
-
查看特定 Service 的详细信息:
kubectl describe service <service-name>
5. Deployment 的操作
5.1 创建 Deployment
Deployment 是用于管理应用程序的声明式更新。以下是创建一个 Nginx Deployment 的 YAML 文件 deployment.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.21ports:- containerPort: 80
使用以下命令创建 Deployment:
kubectl apply -f deployment.yaml
5.2 更新和回滚 Deployment
-
滚动更新:
kubectl set image deployment/nginx-deployment nginx=nginx:1.22
-
回滚 Deployment:
kubectl rollout undo deployment/nginx-deployment
5.3 缩容和扩容 Deployment
-
扩容至 5 个副本:
kubectl scale deployment/nginx-deployment --replicas=5
6. 使用 ConfigMap 和 Secret
ConfigMap 和 Secret 用于管理配置数据和敏感信息。
-
创建 ConfigMap:
kubectl create configmap my-config --from-literal=key1=value1
-
创建 Secret:
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=secret
7. 管理 Namespaces
Namespaces 用于将集群中的资源分隔开,以便更好地管理和隔离。
-
查看所有 Namespaces:
kubectl get namespaces
-
创建 Namespace:
kubectl create namespace mynamespace
-
删除 Namespace:
kubectl delete namespace mynamespace
8. Helm 基本操作
Helm 是 Kubernetes 的包管理工具,用于简化应用的部署。
-
安装 Chart:
helm install my-release stable/nginx
-
列出所有 Release:
helm list
-
卸载 Release:
helm uninstall my-release
9. Kubernetes 日常排错与调试
-
查看 Pod 日志:
kubectl logs <pod-name>
-
进入 Pod 进行调试:
kubectl exec -it <pod-name> -- /bin/bash
-
查看事件:查看集群中的所有事件,以排查可能的问题。
kubectl get events
10. 小结
本文详细介绍了 Kubernetes 的各种常用操作,从基础的 节点管理 和 Pod 操作,到进阶的 Deployment 管理、Service 配置、ConfigMap 和 Secret 使用,以及 Helm 的基本用法。掌握这些操作,能够帮助开发者和运维人员在日常工作中更加高效地管理 K8s 集群。
Kubernetes 的丰富功能使得容器编排变得高效而灵活,但也对用户提出了更高的要求。熟练使用这些操作命令,可以让你在日常维护和调试 Kubernetes 集群时更加得心应手,为企业提供稳定和高效的容器管理服务。
相关文章:
Kubernetes 常用操作大全:全面掌握 K8s 基础与进阶命令
Kubernetes(简称 K8s)作为一种开源的容器编排工具,已经成为现代分布式系统中的标准。它的强大之处在于能够自动化应用程序的部署、扩展和管理。在使用 Kubernetes 的过程中,熟悉常用操作对于高效地管理集群资源至关重要。本文将详…...
爬虫基础之Web网页基础
网页的组成 网页可以分为三大部分–HTML、CSS 和 JavaScript。如果把网页比作一个人,那么 HTML 相当于骨架、JavaScript 相当于肌肉、CSS 相当于皮肤,这三者结合起来才能形成一个完善的网页。下面我们分别介绍一下这三部分的功能。 HTML HTML(Hypertext…...
k8s, deployment
控制循环(control loop) for {实际状态 : 获取集群中对象X的实际状态(Actual State)期望状态 : 获取集群中对象X的期望状态(Desired State)if 实际状态 期望状态{什么都不做} else {执行编排动作…...
使用ensp搭建OSPF+BGP和静态路由,底层PC使用dhcp,实现PC互通
1.4种方式,实现PC2可以互通底层的所有设备 OSPF:OSPF是一种用于互联网协议网络的链路状态路由协议 BGP:是一种用于互联网上进行路由和可达性信息传递的外部网关协议(EGP) 静态路由: 静态路由是一种路由方…...
TÜLU 3: Pushing Frontiers in Open Language Model Post-Training
基本信息 📝 原文链接: https://arxiv.org/abs/2411.15124👥 作者: Nathan Lambert, Jacob Morrison, Valentina Pyatkin, Shengyi Huang, Hamish Ivison, Faeze Brahman, Lester James V. Miranda, Alisa Liu, Nouha Dziri, Shane Lyu, Yuling Gu, Sau…...
深入解读 MySQL EXPLAIN 与索引优化实践
MySQL 是当今最流行的关系型数据库之一,为了提升查询性能,合理使用 EXPLAIN 工具和优化索引显得尤为重要。本文将结合实际示例,探讨如何利用 EXPLAIN 分析查询执行计划,并分享索引优化的最佳实践。 一、EXPLAIN 工具简介 EXPLAIN …...
Flume——进阶(agent特性+三种结构:串联,多路复用,聚合)
目录 agent特性ChannelSelector描述: SinkProcessor描述: 串联架构结构图解定义与描述配置示例Flume1(监测端node1)Flume3(接收端node3)启动方式 复制和多路复用结构图解定义描述配置示例node1node2node3启…...
ragflow连ollama时出现的Bug
ragflow和ollama连接后,已经添加了两个模型但是ragflow仍然一直warn:Please add both embedding model and LLM in Settings > Model providers firstly.这里可能是我一开始拉取的镜像容器太小,容不下当前添加的模型,导…...
基于centos7.7编译Redis6.0
背景: OS:CentOs 7.7 Redis: 6.0.6 编译构建报错如下: In file included from server.c:30:0: server.h:1044:5: error: expected specifier-qualifier-list before ‘_Atomic’_Atomic unsigned int lruclock; /* Clock for LRU eviction …...
uni-app项目无法在Android Studio模拟器上运行
目录 1 问题描述2 尝试解决3 引发原因4 解决方法4.1 换用 MuMu 模拟器 5 结语 1 问题描述 在使用 uni-app 开发 Pad 端 App 时,初始化项目后打算先运行一下确保初始化正常。打开 Android Studio 模拟器后,然后在 HbuilderX 中选择使用 App 标准基座 运…...
第一部分:Linux系统(基础及命令)
Linux操作系统的实操性非常强,纯操作,不适用于日常的办公使用 1.初始Linux 1.1 操作系统概述 1.1.1 了解OS的作用 OS:是计算机软件的一种,主要负责:作为用户和计算机硬件之间的桥梁,调度和管理计算机硬…...
No module named ‘_ssl‘ No module named ‘_ctypes‘
如果你使用的是基于 yum 的 Linux 发行版(例如 CentOS、RHEL、Fedora),安装 libc6-dev 的方式稍有不同。在这些系统中,通常对应的包是 glibc-devel。 No module named ‘_ctypes’ 使用 yum 安装 glibc-devel 更新系统的软件包列…...
【QT】编写第一个 QT 程序 对象树 Qt 编程事项 内存泄露问题
目录 1. 编写第一个 QT 程序 1.1 使用 标签 实现 🐇 图形化界面实现 🐇 纯代码形式实现 1.2 使用 按钮 实现 🐋 图形化界面实现 🐋 纯代码形式实现 1.3 使用 编辑框 实现 🥝 图形化界面实现 ᾕ…...
VTK编程指南<六>:VTK可视化管线与渲染详解
1、VTK渲染引擎 回顾前几章节的RenderCylinder示例 可以找到以下的类: vtkProp; ytkAbstractMapper; vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow; vtkRenderWindowInteractor vtkTransform; vtkLookupTable;可以发现这些类都是与数据显示或渲染相关的。…...
基于STM32的智能计步器
引言 随着健康意识的提高,计步器逐渐成为人们日常生活中重要的健康管理工具。本文将指导你如何使用STM32微控制器制作一个智能计步器。该计步器通过加速度传感器检测步伐,并使用OLED显示屏显示步数。通过这个项目,你将学习到STM32开发的基本流…...
VB.NET 从入门到精通:开启编程进阶之路
摘要: 本文全面深入地阐述了 VB.NET 的学习路径,从基础的环境搭建与语法入门开始,逐步深入到面向对象编程、图形用户界面设计、数据访问、异常处理、多线程编程以及与其他技术的集成等核心领域,通过详细的代码示例与理论讲解&…...
射频电路屏蔽简略
电磁波的干扰是每个射频设备的自带属性,不管是内部还是外部,怎样去更好的抑制掉干扰,关系到射频设备的工作状态,而能够找到产生干扰的来源就是重中之重,电磁波的干扰与其产生的源密不可分,而源就离不开所需…...
基础算法——搜索与图论
搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法(朴素版)2.2、Dijkstra算法(堆优化版)2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…...
redis优化编码之字符串
redis 优化编码之字符串 ### 字符串优化 字符串对象是redis内部最常用的数据类型。 所有的键是字符串对象值对象除了整数之外都是使用字符串存储lpush cache:type "redis" "tair" "memcache" "leveldb"创建如上一个链表 需要创建一…...
Python特定版本的安装/卸载/环境配置,Spyder安装教程
目录 1.Python安装 1.1 Python下载 1.2 下载特定版本 1.3 安装Python 1.4 修改安装 1.5 环境配置 1.6 卸载Python 2.Spyder安装使用 2.1 Spyder下载 2.1.1 官网下载Spyder 2.2.2 Github下载Spyder 2.2 安装 参考资料:网盘 1.Python安装 1.1 Python下载…...
全局搜索正则表达式(grep)
一.grep简介 grep 全程Globally search a Regular Expression and Print,是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep和egrep 二.grep的工作…...
linux-12 关于shell(十一)ls
登录系统输入用户名和密码以后,会显示给我们一个命令提示符,就意味着我们在这里就可以输入命令了,给一个命令,这个命令必须要可执行,那问题是我的命令怎么去使用,命令格式有印象吗?在命令提示符…...
编写指针函数使向右循环移动m个位置
题目描述:有n个整数,要求你编写一个函数使其向右循环移动m个位置 请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。 输入 输入n m表示有n个整数,移动m位 输出 输出移动后的数组 样例输入: 10 5 1 2 3…...
xvisor调试记录
Xvisor是一种开源hypervisor,旨在提供完整、轻量、移植且灵活的虚拟化解决方案,属于type-1类型的虚拟机,可以直接在裸机上启动。 启动xvisor步骤: 1、搭建riscv编译环境 首先从github上下载riscv-gnu-toolchain很费劲,建议直接从国内的源下载 git clone https://gitee…...
MongoDB-ObjectID 生成器
前言 MongoDB中一个非常关键的概念就是 ObjectID,它是 MongoDB 中每个文档的默认唯一标识符。了解 ObjectID 的生成机制不仅有助于开发人员优化数据库性能,还能帮助更好地理解 MongoDB 的设计理念。 什么是 MongoDB ObjectID? 在 MongoDB …...
CUDA 计时功能,记录GPU程序/函数耗时,cudaEventCreate,cudaEventRecord,cudaEventElapsedTime
为了测试GPU函数的耗时,可以使用 CUDA 提供的计时功能:cudaEventCreate, cudaEventRecord, 和 cudaEventElapsedTime。这些函数可以帮助你测量某个 CUDA 操作(如设置设备)所花费的时间。 一、记录耗时案例 以下是一个示例程序&a…...
PDF 文件如何转为 CAD 图纸?PDF2CAD 使用教程
在工程设计和建筑行业中,PDF 文件常常被用来分享和存档图纸。然而,当需要对这些图纸进行编辑或进一步开发时,静态的 PDF 格式就显得力不从心了。这时候,将 PDF 文件转换为可编辑的 CAD(计算机辅助设计)格式…...
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
本文内容来自YashanDB官网,原文内容请见:https://www.yashandb.com/newsinfo/7488290.html?templateId1718516 问题现象 如下图,php使用odbc数据源,查询表数据,mysql可以显示出来,yashan显示数据被截断。…...
暴雨AI加速计算服务器新品X8840上市
用户输入简短的文字,大模型可以自动生成创意文本或图像;金融机构的风险评估和预测,大模型通过对金融数据的分析,可以识别异常交易行为;15秒内完成中英文作文的批改和评分,并提供针对性的改进建议࿰…...
在多个分布式机器间设置和使用 NFS(Network File System)共享目录的步骤如下:
在多个分布式机器间设置和使用 NFS(Network File System)共享目录的步骤如下: 1. 准备工作 确保所有参与的机器都在同一个网络中,并安装了 NFS 软件包。 在 Linux 系统上: sudo apt update && sudo apt install nfs-kernel-server -y # Ubuntu/Debian sudo yu…...
it服务商/seo自学网官方
1、下载空白包 2、用自己应用的签名文件(.keystore或.jks)进行签名,步骤如下(应用宝为例) (1)进入到签名文件的路径下, (2)签名:jarsigner -verbo…...
购买保险的网站/常见的网站推广方式有哪些
Python is eating the world. 这篇关于Python长文火了。 从Python的创建过程,到Python成为一个无所不在的语言,究竟经历了一个怎样的过程? 美国科技媒体ZDNet记者Nick Heath,详细呈现了Python作为一款风靡全球的编程语言的发展…...
为什么不用原来的网站做推广/百度sem运营
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目…...
专业的网站开发服务/知乎推广渠道
相信大家都玩过微信H5游戏,例如前几年的围住神经猫,也曾收到过好友分享来的H5游戏链接,因为好奇点进去一探究竟。现在,越来越多的商家开始将H5游戏运用的品牌营销上来,H5游戏营销也受到了重视,那么…...
徐州网站建设优化宣传/百度平台客服人工电话
一、什么是生产线3D可视化解决方案? 生产线3D可视化解决方案,是结合物联网监控系统(智慧工厂)、虚实联动与三维建模先进技术,以三维立体模式呈现出来,使得界面直观、简单,便于监控人员识别异常信…...
做网站和做网店哪个好/企业网站建设推广
premiere软件功能很丰富,但是如果只是做个教程这种程度的简单剪辑用到的功能是非常少的。在这里做个笔记,免的之后又忘记怎么操作premiere 制作文件保存的时候不会保存原始视频。所以原始视频一定要找专门的文件夹放,免的后期误删,…...