使用kubectl管理k8s集群(三十)

640?wx_fmt=gif


前言

Foreword

在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理。命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用。

在下一篇,我们将讲述使用Kubeadm来创建k8s集群。

THE END



目录


使用kubectl管理k8s集群

  • 概述

  • 语法

  • 主要命令(command)说明

  • 资源类型(TYPE)说明

  • 命令标准(flags)说明

  • 格式化输出



 使用kubectl管理k8s集群


概述


Kubectl是一个命令行界面,用于运行针对Kubernetes集群的命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数--kubeconfig来指定其他位置的kubeconfig文件。


 语法


我们可以使用以下语法kubectl从终端窗口运行命令:

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

其中commandTYPENAME,和flags分别是:

  • command:指定要在一个或多个资源进行的操作,例如creategetdescribedelete。例如“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  -f manifest.yaml -l app=nginx

attach

附加到一个正在运行的容器,以查看输出流或与容器(stdin)交互。

autoscale

自动缩放由Replication Controller管理的pod集。

cluster-info

显示有关群集中主服务器和服务的端点信息。

config

指定kubeconfig文件。

create

从文件或标准输入流(stdin)创建一个或多个资源。例如使用pod.json创建podkubectl create -f ./pod.json”。

delete

通过文件,标准输入、指定标签选择器,名称,资源选择器或资源来删除资源。例如删除所有的podkubectl delete pods  --all”。

describe

显示一个或多个资源的详细。例如查看podcoredns-5c98db65d4-h5v9h”的详情“kubectl describe pod  coredns-5c98db65d4-h5v9h -n kube-system”,这里使用了“-n”指定了命名空间。

edit

在服务器上编辑一个资源。

exec

Pod容器中执行命令。

explain

查看资源的文档。例如pod,节点,服务等。例如“kubectl explain pods”。

expose

将复制控制器,服务或pod公开为新的Kubernetes服务。

get

列出一个或多个资源。例如“kubectl get pods -n kube-system  -o wide”命令将列出“kube-system”命名空间下的所有pod并且以表格状输出pod的相关附加信息(节点名称)。

label

添加或更新一个或多个资源的标签。

logs

输出容器在pod中的日志。例如执行以下命令“kubectl logs  etcd-k8s-master -n kube-system”将在终端中输出该容器的日志。

patch

使用patch策略更新资源的字段。

port-forward

将一个或多个本地端口转发到pod

proxy

运行代理指定到Kubernetes  API server

replace

从文件或标准输入中替换资源。

rolling-update

通过逐步替换指定的Replication  Controller及其pod来执行滚动更新。

run

在群集上运行指定的映像。例如运行Nginxkubectl run nginx  --image=nginx”。

scale

设置新的Deployment,  ReplicaSet, Replication Controller 或者 Job副本数量。例如“ubectl  scale --replicas=3 -f foo.yaml”。

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

640?wx_fmt=jpeg


资源类型(TYPE)说明


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

640?wx_fmt=jpeg



 命令标准(flags)说明


同样的,我们可以使用命令“kubectl options”来输出当前支持的所有可选标志:

640?wx_fmt=jpeg

其中,在前面我们说过,“-s”可以指定Kubernetes API 服务器地址,“-n”可以指定命名空间,“--kubeconfig”可以指定kubeconfig配置文件。主要的一些说明如下所示:

640?wx_fmt=jpeg


格式化输出


默认情况下,所有的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

640?wx_fmt=png


 

往期文章



Docker最全教程——从理论到实战(一)

Docker最全教程——从理论到实战(二)

Docker最全教程——从理论到实战(三)

Docker最全教程——从理论到实战(四)

Docker最全教程——从理论到实战(五)

Docker最全教程——从理论到实战(六)

Docker最全教程——从理论到实战(七)

Docker最全教程——从理论到实战(八)    

Docker最全教程——从理论到实战(九)

Docker最全教程之使用Tencent Hub来完成CI(十)

Docker最全教程——数据库容器化(十一)

Docker最全教程——数据库容器化之持久保存数据(十二)

Docker最全教程——MongoDB容器化(十三)

Docker最全教程——Redis容器化以及排行榜实战(十四)

Docker最全教程之Ubuntu下安装Docker(十五)

Docker最全教程之树莓派和Docker(十六)

Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)

Docker最全教程之使用Docker搭建Java开发环境(十八)

Docker最全教程之Go实战,墙裂推荐(十九)

Docker最全教程之使用.NET Core推送钉钉消息(二十)

Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)

Docker最全教程之Python爬网实战(二十二)

使用PHP搭建个人博客站点

Docker最全教程之使用Node.js搭建团队技术文档站(二十四)

Docker最全教程之MySQL容器化 (二十五)

Docker+ Kubernetes已成为云计算的主流(二十六)

容器化之后如何节省云端成本?(二十七)

了解Kubernetes主体架构(二十八)

使用Minikube部署本地Kubernetes集群(二十九)



640?wx_fmt=jpeg


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

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

相关文章

P3435 [POI2006]OKR-Periods of Words kmp + fail指针

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 转换一下题意&#xff0c;就是求一个最小公共前后缀&#xff0c;显然可以暴跳nenene数组&#xff0c;复杂度O(n2)O(n^2)O(n2)&#xff0c;注意到我们每次都跳的话会跳到很多重复的位置&…

架构杂谈《四》

分布式一致性协议一、引言在分布式系统中&#xff0c;为了保证数据的高可用&#xff0c;通常会将数据保留多个副本(replica)&#xff0c;这些个副本会放在不同的物理机上&#xff0c;为了对用户提供正确的数据&#xff0c;我们需要保证这些放在不同物理机上的副本是一致的。为了…

Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 通过完美子串的定义&#xff0c;我们不难发现满足条件的子串就是kmpkmpkmp中ne[n]ne[n]ne[n]不断向前跳得到的串&#xff0c;现在问题就是如何求这些前缀串在串中出现的次数了。 考虑一个前…

译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)

原文&#xff1a;Cesar De la Torre翻译&#xff1a;Edi Wang我们很高兴地宣布ML.NET 1.2 和模型生成器和 CLI 的更新。ML.NET是 .NET 开发人员的开源和跨平台机器学习框架。ML.NET还包括模型生成器(Visual Studio 的简单 UI 工具)和ML.NET CLI(命令行界面),以便使用自动机器学…

Codeforces Round #590 (Div. 3) F. Yet Another Substring Reverse 子集dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 之前做过类似的题&#xff0c;翻转一个字串相当于将任意两个不相交的串连在一起。再一看字符集≤20\le20≤20&#xff0c;那就是铁子集dpdpdp了。 定义f[i]f[i]f[i]表示状态为iii的串的长度…

一个超轻量级工作流引擎:Workflow-Core

近期工作上有一个工作流的开发需求&#xff0c;自己基于面向对象和职责链模式捣鼓了一套小框架&#xff0c;后来在github上发现一个轻量级的工作流引擎轮子&#xff1a;Workflow-Core&#xff0c;看完其wiki之后决定放弃之前自己造的轮子&#xff0c;使用这个开源项目来改造&am…

Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 直接考虑比较难想&#xff0c;这种公式题基本都是将部分答案看成一个整体&#xff0c;考虑xi,xi1x_i,x_{i1}xi​,xi1​的贡献的。 假设当前的xix,xi1y,x<yx_ix,x_{i1}y,x<yxi​x,xi1…

ASP.NET Core 3.0中支持AI的生物识别安全

本文共两个部分&#xff0c;这是第一部分&#xff0c;其中介绍了 ASP.NET Core 3 中旨在将授权逻辑与基本的用户角色相分离的基于策略的授权模型。此部分提供了此授权进程的基于生物识别信息&#xff08;如人脸识别或语音识别&#xff09;的具体示例。在此示例中&#xff0c;检…

架构杂谈《五》

保证最终一致性的模式在大规模、高并发服务化系统中&#xff0c;一个功能被拆分成多个具有功能单一的子功能&#xff0c;一个流程会有多个系统的多个单一功能的服务组合实现&#xff0c;如果使用两阶段提交协议和三阶段提交协议&#xff0c;确实能解决系统间的一致性问题。其实…

在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)

背景平时开发大部人都是在提供了高效GUI的window下工作&#xff0c;但是真正部署环境普遍都是在Linux中&#xff0c;所以为了让开发环境和部署环境统一&#xff0c;我们需要在windows模拟LInux环境&#xff0c;以前我们可能通过虚拟机的方式实现&#xff0c;不过自从微软拥抱开…

.net持续集成cake篇之cake介绍及简单示例

cake介绍Cake 是.net平台下的一款自动化构建工具,可以完成对.net项目的编译,打包,运行单元测试,集成测试甚至发布项目等等.如果有些特征Cake没有实现,我们还可以很容易地通过扩展Cake来实现我们想要的功能.Cake有以下特点1) 使用c#语言编写,可以在Cake脚本里使用C#语言来实现我…

Educational Codeforces Round 73 (Rated for Div. 2) Make The Fence Great Again dp + 结论

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 首先证明一个结论&#xff1a;一个数最多被加两次。 首先假设a[i]a[i−1]a[i]a[i-1]a[i]a[i−1]或a[i]a[i1]a[i]a[i1]a[i]a[i1]&#xff0c;那么此时可以将a[i]a[i]1a[i]a[i]1a[i]a[i]1&am…

.NET Core 3.0 发布小尺寸 self-contained 单体可执行程序

.NET Core 提供的发布应用程序选项 self-contained 是共享应用程序的好方法&#xff0c;因为应用程序的发布目录包含所有组件、运行时和框架。您只需要告诉使用者应用程序的入口 exe 文件&#xff0c;就可以使程序运行起来&#xff0c;而不必担心目标计算机上是否存在.NET Core…

Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 我们将每一段...拿出来看成若干段&#xff0c;将其分成以下四种情况&#xff1a; (1)len<b(1)len<b(1)len<b (2)b≤len<a(2)b\le len<a(2)b≤len<a (3)a≤len<2∗b(3…

「Sqlserver」数据分析师有理由爱Sqlserver之三-最值得使有低投入高产出的Sqlserver功能...

数据分析师群体&#xff0c;有别于一般的传统开发群体和数据库运维群体&#xff0c;对Sqlserver的功能需求上也各不相同&#xff0c;本篇以笔者的亲身经历&#xff0c;用一种有别于一般性教程的角度来讲解Sqlserver值得我们学习&#xff0c;投入产出比高的一些功能模块。当然&a…

.NET开发框架(八)-服务器集群之网络负载平衡(视频)

【视频教程在文章底部】&#xff0c;本文讲解Windows服务器集群的网络负载平衡NLB的作用&#xff0c;以及在.NET开发框架的架构设计中&#xff0c;如何应用NLB与ARR&#xff0c;使用它们各有什么优点。视频教程目录&#xff1a;1、讲解NLB概念与演示其作用 2、安装配置负载均衡…

人生如戏,别太入戏

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「81」篇原创敬上大家好&#xff0c;我是Z哥。对&#xff0c;就是脑袋很大的那个。大到什么程度呢&#xff1f;我给新来的小伙伴们说说。我昨天还打算配副新眼镜来着&#xff0…

C#只用属性来解决兔子,不用方法和循环

属性在调用者看来就像一个普通的变量&#xff0c;但作为类的设计者&#xff0c;你可以利用属性来隐藏你类中的一些字段&#xff0c;使外界只能通过属性来访问你的字段&#xff0c;你可以通过属性来限制外界对你的字段的存取&#xff0c;就利用get、set。如果想让用户随意存取你…

.netcore项目docker化,以及docker之间通信

简言&#xff1a;最近刚完成公司的新系统&#xff0c;系统使用的是微服务架构&#xff0c;由于领导说要将服务docker化。下面将我的研究结果分享出来&#xff0c;如若有错误的地方&#xff0c;还请各位大佬多多指点。目录&#xff1a;  什么是docker&#xff1f;使用docker有…

Codeforces Round #592 (Div. 2) F. Chips 构造 + 细节

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 恶心的构造题&#xff0c;思路很简单但是代码细节很多&#xff0c;搞了半天。 根据题目的性质不难发现&#xff0c;如果有两个相同颜色的球相邻&#xff0c;那么他们的颜色永远不会改变。 …