当前位置:网站首页>【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl
【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl
2022-07-05 08:03:00 【是泡泡】
该篇文章已经被专栏《从零开始学k8s》收录
kubectl详解
概述
kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。
命令格式
命令格式如下
kubectl [command] [type] [name] [flags]
参数
command:指定要对资源执行的操作,例如create、get、describe、delete
type:指定资源类型,资源类型是大小写敏感的,开发者能够以单数,复数,缩略的形式指定。
name:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有的资源。
flags:指定额外的可选参数,比如可以用 -s 或者 -server参数指定Kubernetes API server的地址和端口
例如:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
kubectl get pods
常见命令
kubectl help 获取更多信息
通过 help命令,能够获取帮助信息
# 获取kubectl的命令
kubectl --help
# 获取某个命令的介绍和使用
kubectl get --help
# 查看目前的状态
kubectl get cs
# 查看所有pod
kubectl get pod
# 查看某个pod
kubectl get pod pod_name
# 查看某个pod,以yaml格式展示结果
kubectl get pod pod_name -o yaml
基础命令
常见的基础命令
命令 | 介绍 |
---|---|
create | 通过文件名或标准输入创建资源 |
expose | 将一个资源暴露为一个新的Service |
run | 在集群中运行一个指定的镜像 |
set | 在对象上设置特定的功能 |
get | 显示一个或多个资源 |
explain | 展示文档参考资料 |
edit | 使用默认的编辑器编辑一个资源 |
delete | 通过文件名,标准输入,资源名称或标签来删除资源 |
apply | 通过文件名或标准输入对资源应用配置 |
patch | 补丁修改、更新资源 |
replace | 通过文件名或标准输入替换一个资源 |
convert | 不同的API版本之间转换配置文件 |
label | 更新资源上的标签 |
annotate | 更新资源上的注释 |
completion | 用于实现kubectl工具自动补全 |
api-versions | 打印受支持的API版本 |
config | 修改kubeconfig文件(用于访问API,比如配置认证信息) |
help | 所有命令帮助 |
plugin | 运行一个命令行插件 |
version | 打印客户端和服务版本信息 |
部署命令
命令 | 介绍 |
---|---|
rollout | 管理资源的发布 |
rolling-update | 对给定的复制控制器滚动更新 |
scale | 扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job |
autoscale | 创建一个自动选择扩容或缩容并设置Pod数量 |
集群管理命令
命令 | 介绍 |
---|---|
certificate | 修改证书资源 |
cluster-info | 显示集群信息 |
top | 显示资源(CPU/M) |
cordon | 标记节点不可调度 |
uncordon | 标记节点可被调度 |
drain | 驱逐节点上的应用,准备下线维护 |
taint | 修改节点taint标记 |
故障和调试命令
命令 | 介绍 |
---|---|
describe | 显示特定资源或资源组的详细信息 |
logs | 在一个Pod中打印一个容器日志,如果Pod只有一个容器,容器名称是可选的 |
attach | 附加到一个运行的容器 |
exec | 执行命令到容器 |
port-forward | 转发一个或多个 |
proxy | 运行一个proxy到Kubernetes API Server |
cp | 拷贝文件或目录到容器中 |
auth | 检查授权 |
目前经常使用的命令
# 创建一个nginx镜像
kubectl create deployment nginx --image=nginx
# 对外暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看资源
kubectl get pod
# 查看详细信息ip,端口等。
kubectl get svc
演示
创建一个namespace
[[email protected] ~]# kubectl create namespace paopao
namespace/paopao created
获取namespace
[[email protected] ~]# kubectl get ns
NAME STATUS AGE
default Active 7d23h
kube-node-lease Active 7d23h
kube-public Active 7d23h
kube-system Active 7d23h
paopao Active 22s
在此namespace下创建并运行一个nginx的Pod
[[email protected] ~]# kubectl run pod --image=nginx:latest -n paopao
pod/pod created
查看新创建的pod
[[email protected] ~]# kubectl get pod -n paopao
NAME READY STATUS RESTARTS AGE
pod 1/1 Running 0 3m14s
删除指定的namespace
[[email protected] ~]# kubectl delete ns dev
namespace "dev" deleted
创建/更新资源 使用声明式对象配置 kubectl apply -f XXX.yaml
删除资源 使用命令式对象配置 kubectl delete -f XXX.yaml
查询资源 使用命令式对象管理 kubectl get(describe) 资源名称
资源管理方式
命令式对象管理:直接使用命令去操作kubernetes资源,直接操作对象,适合测试用,比较简单,缺点是只能操作活动对象,无法审计跟踪。
kubectl run nginx-pod --image=nginx --port=80
命令式对象配置:通过命令配置和配置文件去操作kubernetes资源,直接操作文件,适合开发,可以审计以及跟踪,但是项目太大的话,配置文件多就会很多,操作麻烦。
kubectl create -f nginx-pod.yaml
kubectl patch -f nginx-pod.yaml
声明式对象配置:通过apply命令和配置文件去操作kubernetes资源,直接操作目录,适合开发,支持目录操作,但是不好调试。
kubectl apply -f nginx-pod.yaml
资源类型
kubernetes中所有的内容都抽象为资源,可以通过下面的命令进行查看:
kubectl api-resources
写在最后
创作不易,如果觉得内容对你有帮助,麻烦给个三连关注支持一下我!如果有错误,请在评论区指出,我会及时更改!
目前正在更新的系列:从零开始学k8s,从零开始学zabbix
感谢各位的观看,文章掺杂个人理解,如有错误请联系我指出~
边栏推荐
- Create inf module in AMI code
- Ads usage skills
- Global and Chinese market of digital shore durometer 2022-2028: Research Report on technology, participants, trends, market size and share
- Define in and define out
- Sql Server的存储过程详解
- 1-stm32 operation environment construction
- Class of color image processing based on Halcon learning_ ndim_ norm. hdev
- 生产中影响滑环质量的因素
- Wifi-802.11 negotiation rate table
- Bluetooth hc-05 pairing process and precautions
猜你喜欢
Altium designer 19.1.18 - change the transparency of copper laying
Shape template matching based on Halcon learning [VII] reuse_ model. Hdev routine
Programming knowledge -- assembly knowledge
Interview catalogue
Class of color image processing based on Halcon learning_ ndim_ norm. hdev
Communication standard -- communication protocol
Altium designer 19.1.18 - Import frame
Consul installation
[untitled] record the visual shock of the Winter Olympics and the introduction of the display screen
Ten thousand words detailed eight sorting must read (code + dynamic diagram demonstration)
随机推荐
Global and Chinese market of resistivity meter 2022-2028: Research Report on technology, participants, trends, market size and share
Altium designer 19.1.18 - hide the fly line of a network
研究發現,跨境電商客服系統都有這五點功能!
Basic embedded concepts
Verilog -- state machine coding method
Programming knowledge -- assembly knowledge
Hardware and software solution of FPGA key chattering elimination
Use of orbbec Astra depth camera of OBI Zhongguang in ROS melody
Beijing Winter Olympics opening ceremony display equipment record 3
如何将EasyCVR平台RTSP接入的设备数据迁移到EasyNVR中?
How to define guid in AMI code
Step motor generates S-curve upper computer
Adaptive filter
UEFI development learning series
A simple method to prove 1/t Fourier transform
Global and Chinese market for blood typing 2022-2028: Research Report on technology, participants, trends, market size and share
Process communication mode between different hosts -- socket
生产中影响滑环质量的因素
Bootloader implementation of PIC MCU
Win10 shortcut key