A. 【云原生】k8s集群命令行工具kubectl基础操作命令实践详解
Kubernetes 提供的集群控制平面与 Kubernetes APIServer 通信的命令行工具是 kubectl。默认配置文件目录位于 $HOME/.kube/config。通过 --kubeconfig 参数可以指定 kubectl 的配置文件。以下操作步骤如果已经完成,可以跳过。
1.1、Replication Controller
创建 myhello-rc.yaml 文件并写入内容。通常不会单独配置 pod,而是通过副本控制器资源部署 pod。原因在于,单独配置 pod 时,集群升级时需要将当前节点上的所有 pod 排空,这时 pod 没有任何副本控制器控制,集群对其没有预期,节点排空后,pod 将无法被调度和重生。
1.2、Deployment
创建 myapp-deployment.yaml 文件并写入内容。为 Deployment 创建 service。应用配置。
1.3、DaemonSet
创建 myapp-deployment.yaml 文件并写入内容。为 DaemonSet 创建 service。应用配置。
1.4、查看创建的 svc 和 pod
当前只有一个节点,因此只有一个 pod。
1.5、kubectl 命令自动补全设置
二、kubectl 语法
2.1、command
指定对一个或多个资源执行的操作,例如:create、get、describe、delete 等。
2.2、TYPE
指定资源类型。类型不区分大小写,可以使用单数、复数或缩写形式。例如:以下命令输出相同的结果。
2.3、NAME
指定资源名称。名称区分大小写。省略名称时显示所有资源的详细信息。例如:。
2.4、多个资源操作
可以按类型和名称指定每个资源,或指定一个或多个文件:。
2.5、flags
指定可选参数。例如:使用 -o 或 --output 参数指定输出格式。
三、基础操作命令
3.1、api-resources
打印服务器上支持的 API 资源。
3.2、api-versions
打印支持的API Versions。
3.3、create
通过文件或标准输入创建资源。create 和 apply -f 功能相同,但 create 只能创建一次,而 apply 可以多次应用,将新属性应用到线上而不会改变原有内容。
3.4、expose
将副本控制器、服务、Deployment 或 Pod 暴露为新的 kubernetes Service,本质是通过现有资源对象的配置信息将新的 Service 与原有资源背后的 Pod 做关联。
3.5、run
在集群中使用指定镜像启动容器。
3.6、set
为对象设置功能特性(环境变量、镜像等)。
3.6.1、env
更新资源环境变量,支持 pod(po)、replicationcontroller(rc)、部署(deploy)、守护程序集(ds)、状态集(sts)、cronjob(cj)、ReplicateSet(rs)等资源对象的更新。
3.6.2、image
更新现有资源容器镜像,支持 pod(po)、replicationcontroller(rc)、部署(deploy)、守护程序集(ds)、状态集(sts)、cronjob(cj)、ReplicatSet(rs)等资源。
3.6.3、resources
为 Pod 模板资源对象指定计算资源需求(CPU,内存等),支持 pod(po)、replicationcontroller(rc)、部署(deploy)、守护程序集(ds)、状态集(sts)、cronjob(cj)、ReplicatSet(rs)等资源。
3.6.4、selector
在资源上设置选择器。如果资源在调用“set selector”之前已有选择器,则新选择器将覆盖旧选择器。如果指定了--resource version,则更新将使用此资源版本,否则将使用现有资源版本。目前只支持 Service 资源对象。
3.7、explain(重点)
显示资源文档说明,帮助定义资源。
3.8、get
显示一个或者多个资源信息。
3.9、edit
修改服务器上的某资源。
3.10、delete
通过文件名、标准输入、资源和名字删除资源,或通过资源和标签选择器删除资源。
3.11、label
更新资源的标签。
3.12、annotate
更新资源关联的注解。
总结
通常不会单独配置 pod,而是通过副本控制器资源部署 pod。原因在于,单独配置 pod 时,集群升级时需要将当前节点上的所有 pod 排空,这时 pod 没有任何副本控制器控制,集群对其没有预期,节点排空后,pod 将无法被调度和重生。
后言
本专栏知识点通过系统学习进行梳理总结,对 C/C++ Linux 系统提升感兴趣的读者,可点击链接查看详细服务:C/C++服务器开发。