K8s 命令行

前言:关于k8s 与 docker

Docker和Kubernetes(通常简称为K8s)是两个在容器化应用程序方面非常流行的开源工具。

Docker:

Docker 是一种轻量级的容器化平台,允许开发者将应用程序及其所有依赖项打包到一个称为容器的可移植容器中。每个容器都运行在宿主操作系统的独立进程中,具有自己的文件系统和网络空间。Docker 提供了一种标准化的方式,使应用程序能够在不同的环境中轻松部署和运行。Docker 镜像包含了应用程序的代码、运行时、系统工具、系统库等。

Kubernetes (K8s):

Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的开源容器编排工具。它提供了一种容器编排系统,可以自动化应用程序的部署、伸缩和管理。Kubernetes 允许用户定义容器的部署、配置和调度,确保它们在整个集群中以高效和可靠的方式运行。K8s 提供了强大的功能,如自动负载均衡、滚动更新、自动扩展等,使得在大规模容器化环境中管理应用变得更加容易。

关系与区别:

  1. 关系: Docker 可以用于创建、打包和分发容器,而 Kubernetes 用于在一个集群中管理这些容器的部署、伸缩和运维。

  2. 单机 vs. 集群: Docker 主要关注单个主机上的容器化,而 Kubernetes 更专注于在多个主机上协调和管理容器。

  3. 抽象层次: Docker 提供了一个容器运行时环境,而 Kubernetes 提供了容器编排和管理的整体解决方案。

  4. 自动化: Kubernetes 提供更高级别的自动化,例如自动负载均衡、自动扩展、滚动更新等功能,使得在生产环境中更容易管理大规模应用。

通常,组合使用 Docker 和 Kubernetes 可以提供一个完整的容器化解决方案,使开发者能够方便地开发、测试和部署应用程序,并在生产环境中有效地管理这些应用程序。


kubectl 常用命令集合

1. 语法规则

kubectl [command] [TYPE] [NAME] [flags]

其中 command TYPE NAME flags 分别是:
  • command :指定要对一个或多个资源执行的操作,例如 create get describe delete 
  • TYPE :指定资源类型。资源类型不区分大小写,可以指定单数、复数或缩写形式。
例如,以下命 令输出相同的结果:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
  • NAME :指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息 kubectl get pods
在对多个资源执行操作时,您可以按类型和名称指定每个资源,或指定一个或多个文件:
要按类型和名称指定资源:
要对所有类型相同的资源进行分组,请执行以下操作:
TYPE1 name1 name2 name<#> 。
例子: kubectl get pod example - pod1 example - pod2
分别指定多个资源类型:
TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#> 。
例子: kubectl get pod/example - pod1 replicationcontroller/example - rc1
用一个或多个文件指定资源: - f file1 - f file2 - f file<#>
使用 YAML 而不是 JSON 因为 YAML 更容易使用,特别是用于配置文件时。
例子: kubectl get pod - f ./pod.yaml
  • flags : 指定可选的参数。例如,可以使用 -s -server 参数指定 Kubernetes API 服务器的地址和端口。
注意:
从命令行指定的参数会覆盖默认值和任何相应的环境变量。
如果您需要帮助,只需从终端窗口运行 kubectl help 即可。

1.1 get命令

kubectl get - 列出一个或多个资源。
# 查看集群状态信息
kubectl cluster-info
# 查看集群状态
kubectl get cs
# 查看集群节点信息
kubectl get nodes
# 查看集群命名空间
kubectl get ns
# 查看指定命名空间的服务
kubectl get svc -n kube-system
# 以纯文本输出格式列出所有 pod
kubectl get pods
# 以纯文本输出格式列出所有 pod ,并包含附加信息 ( 如节点名 )
kubectl get pods -o wide
# 以纯文本输出格式列出具有指定名称的副本控制器。提示:您可以使用别名 'rc' 缩短和替换
'replicationcontroller' 资源类型。
kubectl get replicationcontroller <rc-name>
# 以纯文本输出格式列出所有副本控制器和服务。
kubectl get rc,services
# 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。
kubectl get ds --include-uninitialized
# 列出在节点 server01 上运行的所有 pod
kubectl get pods --field-selector=spec.nodeName=server01

1.2 describe 命令

kubectl describe - 显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。
# 显示名称为 <node-name> 的节点的详细信息。
kubectl describe nodes <node-name>
# 显示名为 <pod-name> pod 的详细信息。
kubectl describe pods/<pod-name>
# 显示由名为 <rc-name> 的副本控制器管理的所有 pod 的详细信息。
# 记住:副本控制器创建的任何 pod 都以复制控制器的名称为前缀。
kubectl describe pods <rc-name>
# 描述所有的 pod ,不包括未初始化的 pod
kubectl describe pods --include-uninitialized=false
说明: kubectl get 命令通常用于检索同一资源类型的一个或多个资源。 它具有丰富的参数, 允许您使用 - o -- output 参数自定义输出格式。您可以指定 - w -- watch 参数以开始观察 特定对象的更新。 kubectl describe 命令更侧重于描述指定资源的许多相关方面。它可以调用 对 API 服务器 的多个 API 调用来为用户构建视图。 例如,该 kubectl describe node 命令不 仅检索有关节点的信息,还检索在其上运行的 pod 的摘要,为节点生成的事件等。

1.3 delete命令

kubectl delete` - 从文件、 stdin 或指定标签选择器、名称、资源选择器或资源中删除资源。
# 使用 pod.yaml 文件中指定的类型和名称删除 pod
kubectl delete -f pod.yaml
# 删除标签名 = <label-name> 的所有 pod 和服务。
kubectl delete pods,services -l name=<label-name>
# 删除所有具有标签名称 = <label-name> pod 和服务,包括未初始化的那些。
kubectl delete pods,services -l name=<label-name> --include-uninitialized
# 删除所有 pod ,包括未初始化的 pod
kubectl delete pods --all

1.4 进入容器命令

kubectl exec - pod 中的容器执行命令。与 docker exec 命令非常类似
# pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。
kubectl exec <pod-name> date
# 运行输出 'date' 获取在容器的 <container-name> pod <pod-name> 的输出。
kubectl exec <pod-name> -c <container-name> date
# 获取一个交互 TTY 并运行 /bin/bash <pod-name > 。默认情况下,输出来自第一个容器。
kubectl exec -ti <pod-name> /bin/bash

1.5 logs命令

kubectl logs - 打印 Pod 中容器的日志。
# pod 返回日志快照。
kubectl logs <pod-name>
# pod <pod-name> 开始流式传输日志。这类似于 'tail -f' Linux 命令。
kubectl logs -f <pod-name>

1.6 格式化输出

pod 信息格式化输出到一个 yaml 文件
kubectl get pod web-pod-13je7 -o yaml

1.7 资源缩写汇总

2. namespace 命名空间

kubectl get namespace
查看所有命名空间的 pod 资源
kubectl get pod --all-namespaces
kubectl get pod -A
简写命令
kubectl get ns
default 用户创建的 pod 默认在此命名空间
kube-public 所有用户均可以访问,包括未认证用户
kube-node-lease kubernetes 集群节点租约状态 ,v1.13 加入
kube-system kubernetes 集群在使用

3.pod

Pod kubernetes 集群能够调度的最小单元。 Pod 是容器的封装
查看 default 命名空间下的 pods
kubectl get pods
查看 kube-system 命名空间下的 pods
kubectl get pods -n kube-system
查看所有命名空间下的 pods
kubectl get pod --all-namespaces
kubectl get pod -A

3.

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

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

相关文章

三成青少年“不能忍受没有手机”?数字时代家庭教育新责任考验家长

孩子放学回家第一件事就是刷手机&#xff0c;不仅耽误睡觉而且严重影响学习&#xff0c;没收手机后孩子哭闹不止&#xff0c;更无心学习&#xff0c;这样的熊孩子你遇到过没?近日&#xff0c;福建一家长在社区群里晒出自己的烦恼&#xff0c;结果骤然成为热帖&#xff0c;不少…

openssl1.0.2版本Windows安装问题

之前安装过1.1版本&#xff0c;Windows环境下C 安装OpenSSL库 源码编译及使用&#xff08;VS2019&#xff09;_vs2019安装openssl_肥宝Fable的博客-CSDN博客 后来发现linux编译不过&#xff0c;以为是版本问题&#xff0c;相差太大&#xff0c;所以降一下版本&#xff0c;以免…

全新叙事赛道:诺亚引领不良资产合成潮流,DeFi生态再添“万亿”动力

在全球DeFi领域&#xff0c;一场革命性的变革正在悄然兴起。诺亚项目以其独特的商业模式和前瞻性的愿景成为DeFi 2.0的一股新力量。作为全球首家专注于不良资产合成铸币的平台&#xff0c;诺亚项目凭借其强大的经济模型和全新的叙事赛道&#xff0c;正迅速崭露头角&#xff0c;…

智慧能源太阳能光伏数据采集终端钡铼技术4G无线RTU

智慧能源太阳能光伏系统在当今的能源行业中扮演着越来越重要的角色&#xff0c;而钡铼技术有限公司的4G无线RTU&#xff08;远程终端单元&#xff09;作为数据采集终端&#xff0c;为智慧能源太阳能光伏系统的监测和管理提供了全新的解决方案。 首先&#xff0c;钡铼技术的4G无…

Redis怎么保证数据不丢失

目录 一、Redis使用持久化保证数据不丢失 二、Redis 持久化的三种方式 三、混合持久化的流程 一、Redis使用持久化保证数据不丢失 Redis 中的数据是存放在内存中的&#xff0c;这样可以保证 Redis 高效的运行&#xff0c;然而内存中的数据会随着系统的重启而丢失&#xff0c;那…

小家具工厂是如何实现成本降低,收益提高的呢

随着科技的发展和数字化时代的到来&#xff0c;越来越多的工厂开始采用生产管理软件来提高生产效率和管理水平。本文将分享我们工厂在使用了万界星空科技免费生产管理MES软件后的成功经验&#xff0c;希望对广大读者有所帮助。 我们工厂在市面上找了很多厂家咨询生产管理软件的…

3D应用开发引擎HOOPS如何促进AEC数字化架构革新?

随着科技的不断发展&#xff0c;建筑、工程和施工&#xff08;AEC&#xff09;行业正在掀起令人瞩目的数字化转型浪潮。在这一变革的过程中&#xff0c;Tech Soft 3D的HOOPS SDK&#xff08;软件开发工具包&#xff09;正扮演着关键的角色&#xff0c;为构建世界一流的AEC和BIM…

谷歌浏览器F12/打开开发者工具网络就无法连接报错

刷新页面就出现提示&#xff1a; 原因&#xff1a;浏览器网络设置的问题&#xff0c;网络设置了离线状态&#xff0c;切换回3G即可。

Python调用企微机器人: 发送常用格式汇总

企微接口文档 发送应用消息 - 接口文档 - 企业微信开发者中心 发送格式 应用支持推送文本、图片、视频、文件、图文等类型。 ~~~以下列举常用格式 示例~~~ 1.发送文本 代码如下&#xff1a; def sendtxt_robotmsg(self):# 正式keywx_key "xx"wx_webhookurl htt…

C# 实时监控双门双向门禁控制板源码

本示例使用设备&#xff1a;实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.…

ESP32踩坑记2-组件链接的未定义

发现问题 开发ESP32的时候&#xff0c;当我使用多个组件的时候&#xff0c;编译的时候出现两个问题 Task/Task_Gui.c:13: undefined reference to lvgl_driver_init’ However, the component manager is not enabled 解决问题1 但是我去找这个文件的时候&#xff0c;发现…

构建自定义ChatGPT,微软推出Copilot Studio

11月16日&#xff0c;微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。本次人工智能成为重要主题&#xff0c;微软几乎把所有产品都集成了生成式AI功能并发布了一系列全新产品。 其中&#xff0c;微软重磅推出了Copilot Studio&#xff08;预览版&#xff09;&…