Kubectl常用命令详解

2023-05-16

要使用和维护Kubernetes集群,最常用且直接的方式,就是使用自带的命令行工具Kubectl。这里梳理下常用的子命令及参数,方便查找参考。

参考文档:

  • Overview of kubectl
  • kubectl.docs
  • kubernetes-handbook

kubectl概述

祭出一张图,转载至kubernetes-handbook/kubectl命令概述,可以对命令族有个整体的概念。
在这里插入图片描述

环境准备

kubectl安装后,默认是没有比如自动补全等功能的,频繁使用比较不方便。目前已经有各类kubectl小工具可以提高效率,还有kubectl专用的shell了。个人感觉比较好用有以下这些:

  • 自动补全
    kubectl 命令在bash中默认是没有自动补全的,需要安装bash_completion,添加自动补全脚本。这里以CentOS为例,其他操作系统配置可以参看Install and Set Up kubectl
# 安装bash-completion
yum install -y epel-release.noarch
yum install -y bash_completion
# 添加补全脚本
kubectl completion bash >/etc/bash_completion.d/kubectl

重新登录shell,可以发现kubectl的子命令,包括资源名称都可以用Tab键自动补全了:

在这里插入图片描述

  • 快速切换集群和Namespace
    生产环境一般是多集群,至少也是多NS的环境,免不了经常在不同集群和不同NS间切换。切换集群要修改环境变量、切换NS要在命令跟上 -n namespace,都不是太方便。而用kubectx和kubens两个小工具可以实现快速切换。这俩在同一项目里:ahmetb/kubectx
# 安装
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

# 使用kubectx
# kubectx  : 列出所有上下文
# kubectx <NAME> : 切换到某个上下文
$ kubectx minikube
Switched to context "minikube".
# kubectx -   : 切换回上一个上下文
$ kubectx -
Switched to context "oregon".
# kubectx <NEW_NAME>=<NAME> : 重命名一个集群上下文
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "dublin" set.
Aliased "gke_ahmetb_europe-west1-b_dublin" as "dublin".
# kubectx <NEW_NAME>=. : 重命名当前上下文
# kubectx -d <NAME>  : 删除上下文

# 使用kubens
# kubens : 列出所有的NS
# kubens <NS-NAME>  : 切换当前NS
$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".
# kubens - : 切换回上一个NS
$ kubens -
Context "test" set.
Active namespace is "default".

关于多集群切换的配置和上下文的概念可以参看官方文档,有中文。

  • kubectl shell
    kubectl已经有比较成熟的专用shell了,优化了自动补全,模糊匹配等功能:

在这里插入图片描述
但实际使用过程中,偶尔还是会各种小问题。推荐两个比较热门的,有需要可以尝试一下:
kube-shell
kube-prompt

常用命令详解

上面的概述图很全面,为了方便说明,这里把Kubectl常用子命令大概分为以下几类:

在这里插入图片描述

语法

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

command:子命令
TYPE:资源类型
NAME:资源名称
flags:命令参数

  • 命令帮助
    kubectl命令的帮助很详细,kubectl -h会列出所有的子命令,在任何子命令后跟 -h,都会输出详细的帮助以及用例,遇到问题可以随时查看帮助。

  • 资源对象
    kubectl大部分子命令后都可以指定要操作的资源对象,可以用kubectl api-resources命令参考

  • 全局参数
    kubectl options命令可以列出可以全局使用的命令参数,比较重要的有:

--cluster='': 指定命令操作对象的集群
--context='':  指定命令操作对象的上下文
-n, --namespace='': 指定命令操作对象的Namespace
  • 资源字段
    kubectl explain命令可以输出资源对应的属性字段及定义,在定义资源配置文件时候非常有用。
# Usage:
  kubectl explain RESOURCE [options]
# Examples: 
$ kubectl  explain deployment.spec.selector
KIND:     Deployment
VERSION:  extensions/v1beta1

RESOURCE: selector <Object>

DESCRIPTION:
     Label selector for pods. Existing ReplicaSets whose pods are selected by
     this will be the ones affected by this deployment.

     A label selector is a label query over a set of resources. The result of
     matchLabels and matchExpressions are ANDed. An empty label selector matches
     all objects. A null label selector matches no objects.

FIELDS:
   matchExpressions     <[]Object>
     matchExpressions is a list of label selector requirements. The requirements
     are ANDed.

   matchLabels  <map[string]string>
     matchLabels is a map of {key,value} pairs. A single {key,value} in the
     matchLabels map is equivalent to an element of matchExpressions, whose key
     field is "key", the operator is "In", and the values array contains only
     "value". The requirements are ANDed.

声明式资源对象管理

对集群资源的声明式管理,是Kubernetes最主要的特性之一,而kubectl apply命令是最能体现这个特性的命令。apply命令最主要的参数有两个:

# Usage:
  kubectl apply (-f FILENAME | -k DIRECTORY) [options]

-f 参数后跟yaml或json格式的资源配置文件,-k 参数后跟kustomization.yaml配置文件的位置。

为什么说apply是声明式管理呢,因为所有对集群的增改操作,都能用apply命令完成,一切取决于后面的配置文件:

  • 如果配置文件中的资源找集群中不存在,则创建这个资源。
  • 如果配置文件中的资源在集群中已存在,则根据配置对资源字段进行更新

举个例子:

# 部署一个goweb应用,配置pod数为4个:
[root@master-1 ~]# grep replicas deployment-goweb.yaml 
  replicas: 4
# 使用 apply 创建资源
[root@master-1 ~]# kubectl apply -f deployment-goweb.yaml 
deployment.apps/goweb created
[root@master-1 ~]# kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
goweb-6b5d559869-4x5mb   1/1     Running   0          14s
goweb-6b5d559869-77lbz   1/1     Running   0          14s
goweb-6b5d559869-9ztkh   1/1     Running   0          14s
goweb-6b5d559869-ccjtp   1/1     Running   0          14s

# 修改pod数量为2个:
[root@master-1 ~]# sed -ri 's/4$/2/g' deployment-goweb.yaml
[root@master-1 ~]# grep replicas deployment-goweb.yaml       
  replicas: 2

# 使用apply更新资源
[root@master-1 ~]# kubectl  apply  -f deployment-goweb.yaml 
deployment.apps/goweb configured
[root@master-1 ~]# kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
goweb-6b5d559869-4x5mb   1/1     Running   0          8m21s
goweb-6b5d559869-77lbz   1/1     Running   0          8m21s

# pod数已更新为2个

可以看到,同一个kubectl apply -f deployment-goweb.yaml命令,可以用来创建资源也可以更新资源。
简单来说,apply命令的作用就是一个:使集群的实际状态朝用户声明的期望状态变化,而用户不用关心具体要进行怎样的增删改操作才能呢达到这个期望状态,也即Kubernetes的声明式资源管理。

命令式资源对象管理

命令式管理类就是直接通过命令执行增删改的操作,除了删除资源外,下面的命令能用apply代替,kubernetes也建议尽量使用apply命令。

  • 创建资源
kubectl create deployment my-dep --image=busybox        # 创建一个deplpyme
kubectl expose rc nginx --port=80 --target-port=8000    # 创建一个svc,暴露nginx这个rc
  • 更新资源
kubectl scale --replicas=3 -f foo.yaml                     # 将foo.yaml中描述的对象扩展为3个
kubectl annotate pods foo description='my frontend'        # 增加description='my frontend'备注,已有保留不覆盖
kubectl label --overwrite pods foo status=unhealthy        # 增加status=unhealthy 标签,已有则覆盖

  • 删除资源
kubectl delete -f xxx.yaml                      # 删除一个配置文件对应的资源对象  
kubectl delete pod,service baz foo              # 删除名字为baz或foo的pod和service  
kubectl delete pods,services -l name=myLabel    # -l 参数可以删除包含指定label的资源对象                            
kubectl delete pod foo --grace-period=0 --force # 强制删除一个pod,在各种原因pod一直terminate不掉的时候很有用

查看资源状态

  • get
    最常用的查看命令,显示一个或多个资源的详细信息
# Usage:
  kubectl get
[(-o|--output=)](TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags] 
[options]
# Examples: 
kubectl get services                          # 列出当前NS中所有service资源
kubectl get pods --all-namespaces             # 列出集群所有NS中所有的Pod
kubectl get pods -o wide                      # -o wide也比较常用,可以显示更多资源信息,比如pod的IP等
kubectl get deployment my-dep                 # 可以直接指定资源名查看
kubectl get deployment my-dep --watch         # --watch 参数可以监控资源的状态,在状态变换时输出。在跟踪服务部署情况时很有用
kubectl get pod my-pod -o yaml                # 查看yaml格式的资源配置,这里包括资实际的status,可以用--export排除
kubectl get pod my-pod -l app=nginx           # 查看所有带有标签app: nginx的pod

kubectl 可用JSONPATH来过滤字段,JSON Path的语法可参考这里

kubectl get pods --selector=app=cassandra rc -o jsonpath='{.items[*].metadata.labels.version}' # 获取所有具有 app=cassandra 的 pod 中的 version 标签
  • describe
    describe命令同样用于查看资源信息,但相比与get只输出资源本身的信息,describe聚合了相关资源的信息并输出。比如,在describe node信息时,同时会输出该node下的pod的资源利用情况。所以describe命令在排错和调试时非常有用。
# Usage:
kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]
# Examples: 
kubectl describe nodes my-node    # 查看节点my-node的详细信息
kubectl describe pods my-pod      # 查看pod my-pod的详细信息

容器管理

虽然逻辑上,Kubernetes的最小管理单位是Pod,但是实际上还是免不了与容器直接交互,特别是对于多容器的Pod,任意容器有问题,都会导致Pod不可用。

  • 日志查看
# Usage:
  kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] [options]
# Examples: 
kubectl logs my-pod                              
# 输出一个单容器pod my-pod的日志到标准输出
kubectl logs nginx-78f5d695bd-czm8z -c nginx     
# 输出多容器pod中的某个nginx容器的日志
kubectl logs -l app=nginx                        
# 输出所有包含app-nginx标签的pod日志
kubectl logs -f my-pod                           
# 加上-f参数跟踪日志,类似tail -f
kubectl logs my-pod  -p                          
# 输出该pod的上一个退出的容器实例日志。在pod容器异常退出时很有用
kubectl logs my-pod  --since-time=2018-11-01T15:00:00Z
# 指定时间戳输出日志            
kubectl logs my-pod  --since=1h 
# 指定时间段输出日志,单位s/m/h
  • 执行命令
    命令作用和参数基本与docker exec一致
# Usage:
kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options]
# Examples:
kubectl exec my-pod ls                         # 对my-pod执行ls命令
kubectl exec -t -i nginx-78f5d695bd-czm8z bash # 进入pod的shell,并打开伪终端和标准输入
  • 文件传输
    在排错和测试服务的时候,时不时需要和容器互相交互文件,比如传输容器内存的dump到宿主机,或从宿主机临时拷贝个新配置文件做调试,这时就可以用*kubectl cp命令。要注意的是,cp命令需要容器里已安装有tar程序
# Usage:
kubectl cp <file-spec-src> <file-spec-dest> [options]
# Examples:  
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir                 # 拷贝宿主机本地文件夹到pod
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar        # 指定namespace的拷贝pod文件到宿主机本地目录
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container> # 对于多容器pod,用-c指定容器名

集群管理

除了和具体的资源打交道,在对集群进行维护时,也经常需要查看集群信息和对节点进行管理,集群管理有以下这些常用的命令:

  • 集群信息查看
 kubectl cluster-info      # 查看master和集群服务的地址
 kubectl cluster-info dump # 查看集群详细日志
 kubectl version           # 查看Kubernetes集群和客户端版本
  • 节点管理
    在集群节点出问题时,可能希望把一个节点不再被调度pod,或把节点目前的pod都驱逐出去
kubectl cordon my-node       
# 标记 my-node 为 unschedulable,禁止pod被调度过来。注意这时现有的pod还会继续运行,不会被驱逐。
kubectl uncordon my-node 
# 与cordon相反,标记 my-node 为 允许调度。
kubectl drain  my-node
# drain字面意思为排水,实际就是把my-node的pod平滑切换到其他node,同时标记pod为unschedulable,也就是包含了cordon命令。
# 但是直接使用命令一般不会成功,建议在要维护节点时,加上以下参数:
kubectl drain my-node  --ignore-daemonsets  --force  --delete-local-data  
# --ignore-daemonsets 忽略daemonset部署的pod
# --force 直接删除不由workload对象(Deployment、Job等)管理的pod
# --delete-local-data  直接删除挂载有本地目录(empty-dir方式)的pod
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubectl常用命令详解 的相关文章

  • 代理ip在爬虫中的应用

    代理IP在爬虫中的应用主要是为了解决以下两个问题 xff1a IP封禁问题 很多网站为了防止爬虫 xff0c 会对频繁访问的IP进行封禁 xff0c 这样就会导致爬虫无法继续访问 此时 xff0c 使用代理IP可以隐藏真实IP xff0c
  • 使用VNC远程服务器

    通常我们控制服务器都是通过ssh远程命令行 但是这次由于特殊需求需要进入服务器的图形界面进行操作 xff08 这台服务器安装的时候就是安装的gnome图形界面 xff0c 但是由于没有事先在服务器上安装向日葵等远程软件 xff0c 所以无法
  • 安卓adb命令大全

    安卓官方文档 xff1a https developer android google cn studio command line adb hl 61 zh cn ADB xff0c 即 Android Debug Bridge xff0
  • Python运维自动化psutil 模块详解(超级详细)

    psutil 模块 参考官方文档 xff1a https pypi org project psutil 一 psutil简介 psutil是一个开源且跨平台 xff08 http code google com p psutil xff0
  • 2021最强Python学习教程,从零基础入门到精通

    关于本套Python自学视频教程 xff1a B站链接 xff1a 戳我直达 千锤百炼 xff0c 只为大作 xff1b 精益求精 xff0c 处处斟酌 xff1b 这种教程 xff0c 看一眼就倾心 你准备好了吗 文章目录 你准备好了吗
  • 进程池(multiprocess.Pool)

    进程池 multiprocess Pool 一 进程池概念 1 什么是进程池 x1f449 进程池是资源进程 管理进程组成的技术的应用 2 为什么要有进程池 x1f62e 忙时会有成千上万的任务需要被执行 xff0c 闲时可能只有零星任务
  • 使用pip安装第三方模块报错,WARNING: You are using pip version 20.2.1; however, version 21.0.1 is available. You

    问题 xff1a 使用pip安装第三方模块报错 xff0c WARNING You are using pip version 20 2 1 however version 21 0 1 is available You should co
  • python小数据池,代码块的深入剖析

    python小数据池 xff0c 代码块的深入剖析 文章目录 python小数据池 xff0c 代码块的深入剖析一 id xff0c is xff0c 61 61 二 代码块三 代码块的缓存机制四 小数据池五 小结 一 id xff0c i
  • docker 之Dockerfile

    Docker 镜像构建之 Dockerfile 在 Docker 中构建镜像最常用的方式 xff0c 就是使用 Dockerfile Dockerfile 是一个用来构建镜像的文本文件 xff0c 文本内容包含了一条条构建镜像所需的指令和说
  • 项目开发的完整流程(详解版)

    项目开发的完整流程 前言 一般情况下 xff0c 企业开发软件时会按照基线和定制两块并行方式执行项目开发工作 无论什么公司 xff0c 都需要遵从一套成熟的产品研发过程体系 xff0c 才能做出质量较好的产品 因此 xff0c 如果出现项目
  • nerfstudio介绍及在windows上的配置、使用

    nerfstudio提供了一个简单的API xff0c 可以简化创建 训练和可视化NeRF的端到端过程 该库通过模块化每个组件来支持可解释的NeRF实现 nerfstudio源码地址 https github com nerfstudio
  • pip源

    02 pip源更换 前面已经介绍过pip软件包管理工具基本使用及换源 链接 一 国内常用镜像源 清华大学 xff1a https pypi tuna tsinghua edu cn simple 阿里云 xff1a http mirrors
  • mysql启动失败,报错:Job for mysqld.service failed

    无论安装多少次mysql xff0c 仍然会出现各种各样的错误 xff0c 无可奈何 xff0c 只能和mysql硬刚了 xff01 所以最好的解决方案是查看错误日志 xff0c 去解决懵逼的代码错误 错误如图所示 xff1a 百度了好久
  • linux 安装SQL Server 2019

    可以直接参考官方文档 xff1a https docs microsoft com zh cn sql linux quickstart install connect red hat view 61 sql server ver15 一
  • Go 数组与切片

    Go 数组与切片 一 数组 1 1 数组定义与基本语法 数组 是一个由 固定长度 的特定类型元素组成的序列 xff0c 一个数组可以由零个或多个元素组成 在Go语言中 xff0c 数组从声明时就确定 xff0c 使用时可以修改数组成员 xf
  • linux安装chrome以及驱动

    一 安装chrome 下载安装脚本 span class token function wget span https intoli com install google chrome sh 然后授予可执行权限 span class tok
  • ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令

    ardupilot编译过程 xff0c 通过makefile的形式编译 xff0c 分析make px4 v2指令 我们都知道平时用的编译命令是make px4 v2 但是为什么是这个呢 xff0c 这个命令是怎样执行的呢 xff0c 挑干
  • AVT工业相机Windows、Opencv开发——驱动相机(超详细)

    一 概述 1 1使用Vimba控制相机需要经历以下几个步骤 1 打开Vimba 2 查找相机列表 3 打开特定相机 4 配置参数 xff08 可选 xff09 5 采集 xff1a 采集过程共分为5步 xff0c 具体见1 2 6 关闭相机
  • python-opencv尺寸测量

    首先 xff0c 利用机器视觉来测定零件尺寸 xff0c 我们能够直接得到的是图片的像素 xff0c 要想获得尺寸大小 xff0c 我们必须找到像素和实际尺寸间的关系 我们在这里定义一个比例概念 xff1a 每度量比的像素 xff08 pi
  • Bounding box(bbox) 预测

    在出现Bounding box预测之前 xff0c 一般都是通过滑动窗口进行目标检测 本文前两部分介绍滑动窗口算法 xff0c 这样是为了更好介绍 bounding box如何引出 为了解决什么问题而引出的 也可直接跳跃到第三部分看有关bo

随机推荐

  • YOLOv3网络结构分析以及工作流程

    注意 xff1a 本文章有很多图 xff0c 但是都是YOLOv3的结构图 xff0c 只是每张图表达出的信息都各有特色 xff0c 可将这些结构图结合起来 xff0c 能更好的理解 1 Darknet 53 模型结构 在论文中虽然有给网络
  • Qt中QDebug的使用

    QDebug类为调试信息 debugging information 提供输出流 它的声明在 lt QDebug gt 中 xff0c 实现在Core模块中 将调试或跟踪信息 debugging or tracing information
  • Ubuntu18.04安装教程——超详细的图文教程

    电脑配置 xff1a 名称 xff1a Lenovo 拯救者Y7000P 处理器 xff1a i7 10750H 内存 xff1a 32G 固态 xff1a 1TB 显卡 xff1a RTX2060 6G 一 准备工作 本文以 Ubuntu
  • Ubuntu18.04启动后无法进入桌面修复方法(图文)

    引言 xff08 吐槽可略过 xff09 xff1a Ubuntu是应用广泛的Linux操作系统 xff0c 特别是在机器学习应用中 xff0c 通过调用NVIDIA显卡的GPU进行计算和研究的主要平台之一 但是由于NV显卡的存在 xff0
  • VINS-Course代码解析——run_euroc前端数据处理

    vins mono总框架如下 xff1a 主要分为三大块 xff1a 我们先从主函数 main 入手 xff1a 主函数中有三个线程 xff0c 读取完数据集和配置文件的路径后就会进入这三个线程 xff0c 如下图 xff1a thd Ba
  • Gazebo11的更新与安装

    Melodic自带的Gazebo版本过低 xff0c 建议升级 Gazebo安装见gazebo官网 需注意以下四点 删除gazebo9以及相关插件选用Alternative installation step by step的安装方式 xf
  • XTDrone目标检测

    编译Darkent ROS 方法一 xff1a xff08 推荐 xff09 直接clone xff0c 记得加 recurse submodules xff0c 防止文件缺失 cd span class token operator sp
  • C++求解N个数的最大公约数、最小公倍数

    一 2个数的最大公约数 span class token comment 辗转相除法 span span class token keyword int span span class token function gcd span spa
  • 子序列个数——动态规划

    题目 xff1a 统计一个字符串中全部不同的子序列的个数 思路 xff1a 动态规划求解 令 f i 61 前 i 个元素中包含的全部子序列的个数 那么状态转移方程分为下面两种情况 xff1a 当第 i 个元素在前面 i 1 个字符中没有出
  • 字符串中特定子序列出现的次数(动态规划)

    题目 xff1a 给定一个字符串 xff0c 求子序列 cwbc 出现的次数 思路 xff1a 动态规划 令 dp i j 表示前 i 个字符中匹配了字符串 cwbc 中前 j 位 xff08 j 61 1 2 3 4 xff09 的个数
  • VMware ubuntu虚拟机无法上网的解决办法(笔记本连接WIFI情况)

    文章目录 一 虚拟机网络配置 一 虚拟机网络配置 1 设置Ubuntu网络适配器的网络连接方式为NAT模式 2 还原虚拟机网络配置 还原一下默认设置 3 window网络适配器设置适配器允许网络共享 4 Ubuntu启用联网 xff0c 连
  • ubuntu在树梅派上之VNC

    启动vncserver vncserver span class token operator span geometry 1600x900 杀死第一个桌面 vncserver span class token operator span
  • Sourcetree介绍及使用

    Sourcetree是一个操作简单但功能强大的免费Git客户端管理工具 xff0c 可应用在Windows和Mac平台 Sourcetree的安装 xff1a 1 从Sourcetree Free Git GUI for Mac and W
  • javascript创建一个基于数组的栈结构

    栈是一种遵从后进先出 xff08 LIFO xff09 原则的有序集合 新添加或待删除的元素都保存在栈的同 一端 xff0c 称作栈顶 xff0c 另一端就叫栈底 在栈里 xff0c 新元素都靠近栈顶 xff0c 旧元素都接近栈底 栈拥有以
  • Ubuntu16.04+RealsenseT265跑通VINS-Fusion

    一 提前条件 系统版本 xff1a ubuntu16 04 43 ROS xff08 kinetic xff09 默认已经掌握了ubuntu系统下的基本命令以及ROS的基本操作 二 realsenseT265的SDK测试 官方网站https
  • Why Kubernetes ,我对Kubernetes的理解

    去年换工作后 xff0c 开始真正在生产环境中接触容器与Kubernetes 边恶补相关知识的同时 xff0c 也想把学到的内容和自己的理解整理出来 学习的途径包括k8s官方文档 书籍 极客时间专栏及网上各种博文 所涉及一些摘抄或描述 xf
  • Kubernetes的几种主流部署方式01-minikube部署

    综述 Kubernetes集群的组件众多 xff0c 要部署一套符合生产环境的集群不是一件容易的事 好在随着社区的快速发展 xff0c 特别是在它成为事实上的容器编排标准以后 xff0c 基本所有的主流云平台都完全支持Kubernetes
  • Kubernetes 1.14版本的亮点新功能

    部分翻译自https sysdig com blog whats new kubernetes 1 14 Kubernetes 1 14的亮点新功能 xff1a 支持Windows容器服务可以通过kubeadm动态地创建一个高可用集群将ku
  • Kubernetes的几种主流部署方式02-kubeadm部署1.14版本高可用集群

    在上篇文章minikube部署中 xff0c 有提到Minikube部署Kubernetes的核心就是Kubeadm xff0c 这篇文章来详细说明下Kubeadm原理及部署步骤 写这篇文章的时候 xff0c Kubernetes1 14刚
  • Kubectl常用命令详解

    要使用和维护Kubernetes集群 xff0c 最常用且直接的方式 xff0c 就是使用自带的命令行工具Kubectl 这里梳理下常用的子命令及参数 xff0c 方便查找参考 参考文档 xff1a Overview of kubectlk