Kubernetes-kubectl介绍
前言
本篇是Kubernetes第三篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。本篇重要介绍kubectl的使用。
Kubernetes系列文章:
kubectl的核心功能在于通过 API Server 操作 Kubernetes 的各种资源对象,包括资源对象的创建、删除、查看、修改、配置、运行等等,学习kubectl相关命令是了解 Kubernetes 集群管理的一种手段。
kubectl语法
kubectl [command] [TYPE] [NAME] [flags]
command:指定在一个或多个资源上要执行的操作。例如:create、get、describe、delete、apply; TYPE:指定资源类型。资源类型区分大小写,您可以指定单数,复数或缩写形式; Name: 指定资源的名称。名称区分大小写。如果省略名称,则会显示所有资源的详细信息;
#获取相同类型的资源信息 type name1 name2
kubectl get pod example-pod1 example-pod2
#获取不同类型对象资源 type/name type2/name2
kubectl get pod/example1 replicationcontroller/example2
#同时应用多个YAML文件,以多个-f flie参数表示
kubectl get pod -f pod1.yaml -f pod2.yaml
指定可选的标记。例如,可以使用 -s 或 --server标识来指定Kubernetes API服务器的地址和端口;-n指定名称空间;
输出格式
kubectl命令可以对结果进行多种格式化显示,输出的格式通过-o参数指定:
kubectl [command] [TYPE] [NAME] -o <output_format>
常用的输出格式如下:

自定义列名展示;
kubectl get pod
#value就是pod定义字段
kubectl get pods -o custom-columns=NAME:.metadata.name,UID:.metadata.uid,imageName:.spec.containers[0].image

自定义列名配置文件名称;
#自定义需要展示列名文件
vim custom-col.conf
#输入下面内容
NAME UID imageName containerPort
metadata.name metadata.uid spec.containers[0].image spec.containers[0].ports[0].containerPort
#指定文件输出
kubectl get pod -o custom-columns-file=custom-col.conf

json格式输出;
kubectl get pod -o json

输出jsonpath文件内容;
kubectl get pods -o jsonpath='{.items[0].metadata.name},{.items[0].spec.containers[0].image}'

通过自定义jsonpath文件输出自定义内容;
#自定义JSONPath文件
vim custom-json.conf
#输入自定义的内容
{.items[0].metadata.name},{.items[0].spec.containers[0].image},{.items[0].spec.containers[0].ports[0].containerPort}
#按照格式输出
kubectl get pod -o jsonpath-file=custom-json.conf
仅打印资源对象的名称;
kubectl get pod -o name

展示更多的Pod信息;
kubectl get pod -o wide

以yaml的格式显示结果;
kubectl get pod -o yaml

关于kubectl的命令很多,大家可以参考下官方文档,这里就不详细介绍每个命令,大家只要掌握常用的命令即可,下面的篇幅就是介绍大家常用命令;
kubectl常用命令
kubectl create/replace 和 kubectl apply 部署或者替换资源,kubectl replace的执行过程,是使用新的 YAML文件中的 API 对象,替换原有的 API 对象,kubectl apply,则是执行了一个对原有 API 对象的patch 操作,这里建议大家使用kubectl apply操作;
#使用create创建一个Deployment资源对象 使用上个章节的yaml文件
kubectl create -f nginx-deployment.yaml
#修改命令 可以通过kubectl edit 还可以使用修改nginx-deployment.yaml文件,
#后使用 kubectl replace 来触发更新 我们修改限制内存的为256,这种方式我们称为命令式配置文件操作
kubectl replace -f nginx-deployment.yaml
#我们也可以使用kubectl apply创建对象资源
kubectl apply -f nginx-deployment.yaml
#然后通过修改nginx-deployment.yaml文件,执行kubectl apply就可以完成资源修改
kubectl apply -f nginx-deployment.yaml
kubectl get 列出查看同一种类型一个或者多个资源对象;
#列出所有的pod
kubectl get pods
#列出某个节点上的所有的pod
kubectl get pods --field-selector=spec.nodeName=节点的名称
#筛选标签为testing=true的pod
kubectl get pod -l testing=true
kubectl describe 查看资源的详细信息,kubectl describe相比于kubectl get来说,更多关注资源方面的详情,会返回节点信息、节点时间等等,kubectl get 用户查看同一种类型一个或者多个资源对象;
#查看某个pod详细信息
kubectl describe pod/nginx-deployment-776b4d7488-jfcjq
#查看某个node详细信息
kubectl describe nodes/demo-work-1
kubectl delete 删除输入的指定的资源对象,也可以通过标签选择器、名称、资源选择器来删除特定资源范围;
#删除指定类型的pod
kubectl delete -f pod.yaml
#删除所有label-key:label-value的信息
kubectl delete pods -l label-key=label-value
kubectl exec 在pod的容器中运行命令;
#进入/bin/bash交互界面
kubectl exec -it nginx-deployment-776b4d7488-jfcjq -- /bin/bash
kubectl logs 打印Pod中容器的日志;
#打印日志
kubectl logs nginx-deployment-776b4d7488-jfcjq
#持续监控pod日志
kubectl logs -f nginx-deployment-776b4d7488-jfcjq
kubectl edit 在线编辑资源对象;
#在线编辑deployment资源
kubectl edit deploy nginx-deployment
将Pod端口映射到宿主机端口;
#将Pod 80端口映射到宿主机 8888
kubectl port-forward --address 172.21.122.230,localhost pod/nginx-deployment-776b4d7488-jfcjq 8888:80
#打开另外一个界面访问
curl http://172.21.122.230:8888
容器与宿主机之间复制文件;
kubectl cp nginx-deployment-776b4d7488-jfcjq:/etc/fastab /tmp
设置资源对象标签;
#给pod设置testing=true的标签
kubectl label pod nginx-deployment-776b4d7488-jfcjq testing=true
#筛选标签为testing=true的pod
kubectl get pod -l testing=true
最重要的命令,帮助命令;
#列出command的类型
kubectl
#列出某种command的使用文档
kubectl command --help
结束
欢迎大家点点关注,点点赞!
Kubernetes-kubectl介绍的更多相关文章
- 附001.kubectl介绍及使用
一 kubectl介绍 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序.使用k ...
- 三十五、kubernetes NameSpace介绍
Kubernetes NameSpace 介绍 Kubernetes使用命名空间的概念帮助解决集群中在管理对象时的复杂性问题.命名空间允许将对象分组到一起,便于将它们作为一个单元进行筛选和控制.无论是 ...
- 三十四、kubernetes证书介绍
Kubernetes 证书介绍 一.证书机制说明 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务.API Server 是集群内部各个组件通信的中介,也是外部控 ...
- 三十一、kubernetes网络介绍
Kubernetes 网络介绍 Service是Kubernetes的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上 ...
- Kubernetes --- 详细介绍和架构详解
Kubernetes是一个跨主机集群的开源的容器调度平台,它可以自动化应用容器的部署,扩展和操作,提供以容器为中心的基础架构 目录 一. Kubernetes用途 二. Kubernetes特点 三. ...
- Kubernetes kubectl 命令概述
kubectl用于运行Kubernetes集群命令的管理工具. 语法 kubectl [command] [TYPE] [NAME] [flags] command:指定要在一个或多个资源执行的操作 ...
- K8S Kubernetes 简单介绍 转自 http://time-track.cn/kubernetes-trial.html Kubernetes初体验
这段时间学习了一下 git jenkins docker 最近也在看 Kubernetes 感觉写得很赞 也是对自己对于K8S 有了进一步得理解 感谢 倪 大神得Blog 也希望看到这篇Bl ...
- 第一篇:《Kubernetes 入门介绍》
前言:本文是一篇 kubernetes(下文用 k8s 代替)的入门文章,将会涉及 k8s 的技术历史背景.架构.集群搭建.一个 Redis 的例子,以及如何使用 operator-sdk 开发 op ...
- Kubernetes组件介绍
一.api-server 基本概念 该端口默认值为6443,可通过启动参数"--secure-port"的值来修改默认值. 默认IP地址为非本地(Non-Localhost)网 ...
- Kubernetes kubectl 命令
kubectl 命令用来操作 Kubernetes 集群中的资源对象,包括对资源的创建.删除.查看.修改.配置.运行等 命令语法:kubectl [command] [TYPE] [NAME] [fl ...
随机推荐
- 什么是ETL--ETL定义、过程和工具选型思路
ETL代表"提取.转换和加载".ETL 过程在数据集成策略中起着关键作用.ETL允许企业从多个来源收集数据并将其整合到一个集中的位置.ETL还使不同类型的数据可以协同工作. 概述 ...
- 从零开始了解kubernetes
kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群.滚动升级回滚.弹性伸缩.自动治愈.服务发现等多种特性能力. 本文将带着大家快速了解 kubernetes , ...
- SQL SERVER获取某张表创建的索引
1 SELECT 索引名称=a.name 2 ,表名=c.name 3 ,索引字段名=d.name 4 ,索引字段位置=d.colid 5 FROM sysindexes a 6 JOIN sysin ...
- 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了
今天收到运营同学的一个 SQL,有点复杂,尤其是这个 SQL explain 都很长时间执行不出来,于是我们后台团队帮忙解决这个 SQL 问题,却正好发现了一个隐藏很深的线上问题. select a. ...
- Python学习的十个阶段,学完神功大成,对应一下看看你自己在哪个阶段
大家好,我是白云. 今天给大家整理了Python学习的十个阶段内容,看看你现在正处于哪个阶段,想学习的朋友也可以根据这个阶段规划学习. 阶段一:Python基础[ 初入江湖] Linux基础 目标: ...
- Java 日志框架概述(slf4j / log4j / JUL / Common-logging(JCL) / logback)
一.简介 JAVA日志在初期可能官方并没有提供很好且实用的规范,导致各公司或OSS作者选择自行造轮子,这也导致了目前初学者觉得市面上 Java 日志库繁杂的局面. 现在市面流行以 slf4j(Simp ...
- RHCE_DAY04
sed流式编辑器 sed是一个非交互的文本编辑器,实现的功能跟vim相同,主要是对文件内容进行输出.删除.替换.复制.剪切.导入.导出等功能 命令格式1:前置命令 | sed [选项] '[指令]' ...
- 2020Android高级开发面试题以及答案整理,持续更新中~
本篇收录了一些大厂面试中经常会遇到的经典面试题,并且我做好了整理分类.虽然今年的金九银十已经过去了,但是可以为明年的金三银四做准备啊,相信每一个跳槽季都有很多的前端开发者蠢蠢欲动,通过对本篇知识的整理 ...
- HDFS总结
hadoop分布式文件存储系统,用来解决海量数据的存储问题 HDFS的组成------核心配置文件:hdfs-site.xml.core-site.xml NameNode:负责整个HDFS集群的管理 ...
- 【Lua篇】静态代码扫描分析(二)词法分析
一.词法分析 词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程.进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer, ...