使用kubectl管理k8s集群(二十九)
前言
在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理。命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用。
在下一篇,我们将讲述使用Kubeadm来创建k8s集群。
目录
使用kubectl管理k8s集群
- 概述
- 语法
- 主要命令(command)说明
- 资源类型(TYPE)说明
- 命令标准(flags)说明
- 格式化输出
使用kubectl管理k8s集群
概述
Kubectl是一个命令行界面,用于运行针对Kubernetes集群的命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数--kubeconfig来指定其他位置的kubeconfig文件。
语法
我们可以使用以下语法kubectl从终端窗口运行命令:
kubectl [command] [TYPE] [NAME] [flags]
其中command,TYPE,NAME,和flags分别是:
- command:指定要在一个或多个资源进行的操作,例如create,get,describe,delete。例如“kubectl get cs”。
- TYPE:指定资源类型。资源类型不区分大小写,可以指定单数,复数或缩写形式。例如,以下命令产生相同的输出:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
- NAME:指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息,如“kubectl get pods”。
在对多个资源执行操作时,我们可以按类型和名称指定每个资源,或指定一个或多个文件:
1) 要按类型和名称指定资源:
- 如果资源类型相同,则对资源进行分组: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
2)
要使用一个或多个文件指定资源: -f file1 -f file2 -f file<#>
- 注意使用YAML而不是JSON,因为YAML往往更加用户友好,特别是对于配置文件。
例:kubectl
get pod -f ./pod.yaml - flags:指定的可选标志,不过值得注意的是,使用命令行指定参数会覆盖默认值以及相关的环境变量。例如,我们可以使用-s或--server标志来指定Kubernetes API服务器的地址和端口。
主要命令(command)说明
Kubectl的主体操作命令如下表所示:
|
操作 |
描述 |
|
annotate |
添加或更新一个或多个资源的注释。 |
|
api-versions |
列出可用的API版本。 |
|
apply |
通过文件名或标准输入流(stdin)对资源进行配置,例如“kubectl apply --prune |
|
attach |
附加到一个正在运行的容器,以查看输出流或与容器(stdin)交互。 |
|
autoscale |
自动缩放由Replication Controller管理的pod集。 |
|
cluster-info |
显示有关群集中主服务器和服务的端点信息。 |
|
config |
指定kubeconfig文件。 |
|
create |
从文件或标准输入流(stdin)创建一个或多个资源。例如使用pod.json创建pod“kubectl create -f ./pod.json”。 |
|
delete |
通过文件,标准输入、指定标签选择器,名称,资源选择器或资源来删除资源。例如删除所有的pod“kubectl delete pods |
|
describe |
显示一个或多个资源的详细。例如查看pod“coredns-5c98db65d4-h5v9h”的详情“kubectl describe pod |
|
edit |
在服务器上编辑一个资源。 |
|
exec |
在Pod容器中执行命令。 |
|
explain |
查看资源的文档。例如pod,节点,服务等。例如“kubectl explain pods”。 |
|
expose |
将复制控制器,服务或pod公开为新的Kubernetes服务。 |
|
get |
列出一个或多个资源。例如“kubectl get pods -n kube-system |
|
label |
添加或更新一个或多个资源的标签。 |
|
logs |
输出容器在pod中的日志。例如执行以下命令“kubectl logs |
|
patch |
使用patch策略更新资源的字段。 |
|
port-forward |
将一个或多个本地端口转发到pod。 |
|
proxy |
运行代理指定到Kubernetes |
|
replace |
从文件或标准输入中替换资源。 |
|
rolling-update |
通过逐步替换指定的Replication |
|
run |
在群集上运行指定的映像。例如运行Nginx“kubectl run nginx |
|
scale |
设置新的Deployment, |
|
version |
显示客户端和服务器上运行的Kubernetes版本。 |
|
api-resources |
输出服务端支持的所有的API资源类型。 |
|
api-versions |
输出服务端支持的API版本。 |
更多命令,我们可以执行“kubectl help”来查看当前所有支持的命令,也可以访问官方地址“https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands”来查看所有的命令说明。在使用的过程中,如果我们不了解单个命令的具体语法,我们可以使用“kubectl <command> --help”来获取详细介绍,如:
kubectl scale --help

资源类型(TYPE)说明
我们可以使用“kubectl
api-resources”命令来获取服务端目前支持的所有的资源类型,如下图所示:

命令标准(flags)说明
同样的,我们可以使用命令“kubectl
options”来输出当前支持的所有可选标志:
其中,在前面我们说过,“-s”可以指定Kubernetes API 服务器地址,“-n”可以指定命名空间,“--kubeconfig”可以指定kubeconfig配置文件。主要的一些说明如下所示:
格式化输出
默认情况下,所有的kubectl命令默认输出格式是可读的纯文本格式。要以特定格式将详细信息输出到终端窗口,我们需要使用“-o”或多个“-output”标志。
语法:
kubectl [command] [TYPE] [NAME]
-o=<output_format>
支持的输出格式如下表所示:
|
输出格式 |
描述 |
|
-o=custom-columns=<spec> |
输入指定的逗号分隔的列名列表来打印表格 。 |
|
-o=custom-columns-file=<filename> |
使用文件中的自定义列模板来打印表。 |
|
-o=json |
输出JSON格式的API对象。 |
|
-o=jsonpath=<template> |
打印在jsonpath表达式中定义的字段 |
|
-o=jsonpath-file=<filename> |
打印由文件中的jsonpath表达式定义的字段。 |
|
-o=name |
仅打印资源名称。 |
|
-o=wide |
以纯文本格式输出任何附加信息。对于pod,包括节点名称。 |
|
-o=yaml |
输出YAML格式的API对象。 |
例如:
kubectl get pods -n kube-system -o wide
往期内容链接
Docker最全教程之使用Tencent Hub来完成CI(九)
Docker最全教程——Redis容器化以及排行榜实战(十三)
Docker最全教程之Ubuntu下安装Docker(十四)
Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)
Docker最全教程之使用Docker搭建Java开发环境(十七)
Docker最全教程之使用.NET Core推送钉钉消息(十九)
Docker最全教程之使用 Visual Studio Code玩转Docker(二十)
Docker最全教程之使用Node.js搭建团队技术文档站(二十三)
使用kubectl管理k8s集群(二十九)的更多相关文章
- 在node节点部署kubectl管理k8s集群
感谢!原文链接:https://blog.csdn.net/sinat_35930259/article/details/79994078 kubectl是k8s的客户端程序,也是k8s的命令行工具, ...
- 使用kubeseal加密和管理k8s集群的secret
使用kubeseal加密和管理k8s集群的secret 在k8s的管理过程中,像secret这种资源并不好维护,kubeseal提供了一种相对简单的方式来对原始secret资源进行加密,并通过控制器进 ...
- kubectl管理kubernetes集群
[root@master ~]# kubectl get nodes 查看集群节点NAME STATUS AGEnode1 Ready 25mnode2 Re ...
- 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群
1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum inst ...
- 使用kuboard界面管理k8s集群时使用ConfigMap挂载挂载到pod容器中,映射成一个文件夹
将 ConfigMap 作为一个数据卷(在挂载时不指定数据卷内子路径,需要指定ConfigMap的子路径)挂载到容器,此时 ConfigMap 将映射成一个文件夹,每一个 KEY 是文件夹下的文件名, ...
- 使用Kubeadm创建k8s集群之部署规划(三十)
前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...
- 使用Kubeadm创建k8s集群之节点部署(三十一)
前言 本篇部署教程将讲述k8s集群的节点(master和工作节点)部署,请先按照上一篇教程完成节点的准备.本篇教程中的操作全部使用脚本完成,并且对于某些情况(比如镜像拉取问题)还提供了多种解决方案.不 ...
- k8s集群部分常见问题处理
目录 部分常见问题处理 Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题 添加工作节点时提示token过期 kubectl 执行命令报“The connection t ...
- K8s集群部署(二)------ Master节点部署
Master节点要部署三个服务:API Server.Scheduler.Controller Manager. apiserver提供集群管理的REST API接口,包括认证授权.数据校验以 及集群 ...
随机推荐
- C++成员函数指针错误用法警示(成员函数指针与高性能的C++委托,三篇),附好多评论
今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类.这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中.子类只需注册需要并发执行的入口函数即可在单独线程 ...
- SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明
原文:SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明 DBCC SHRINKFILE 收缩相关数据库的指定数据文件或日志文件大小. 语法 DBCC SHRINKF ...
- WPF用DirectSound播放声音
示例代码: var fileName = @"D:\WindowsLogon.wav"; DevicesCollection sound_devices = new Devices ...
- oracle延迟块清除
oracle在执行一些DML操作时,会在block上有活动事务的标志,如果一个事务commit后,由于某些block在commit之前已经写回datafile, 或者事务影响到的block数过多,则c ...
- 反射:获取枚举类型的Name,Value,Description
[Obsolete("请使用新的方法XXX")] //使用Obsolete特性来告诉使用者这是一个过期的方法 private static void Test() { Type t ...
- memcached的使用一
1.安装memcached 需要一个memcache.exe文件,打开cmd窗口,切换到可执行文件目录,执行memcache -的install命令. 2.连接服务 做测试可以打开电脑的telnet ...
- 修改用户名后TSF出现"需要本地工作区。工作区 xxx 并未驻留在本计算机上"
解决方法就是:1,打开vs下的"开发人员命令提示"2,按下面格式输入命令:tf workspaces /collection:http://192.168.0.110:8080/t ...
- Qt在Windows下如何创建无CMD窗口控制台程序
默认情况下,用Qt新建一个控制台程序,运行时会弹出CMD窗口.如何把窗口去掉呢? *.pro文件默认是这样的: TEMPLATE = app CONFIG += console CONFIG -= a ...
- 关于Eurekalog解决不能发邮件的问题
最近无意中发现在盒子论坛中有人回答了本文的问题,最后在Eurekalog的安装目录中的ExceptionLog.pas找到了多发送的Rest命令的地方,现传上来,有需要的朋友下载下面的文件. 因为16 ...
- uni-app中vue组件父子值传递
一.父组件向子组件传递数据(props) <template> <view class="container" style="background: # ...