栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

3. K8S基础系列篇(3) kubectl命令的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3. K8S基础系列篇(3) kubectl命令的使用

3. kubectl命令的使用 3.1 kubectl命令格式

kubectl 作为客户端 CLI 工具,可以让用户通过命令行对 Kubernetes 集群进行操作。
命令行语法:

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

command:子命令,用于操作资源对象。例如: create, get, describe, delete等。TYPE: 要操作的资源类型,类型名称大小写敏感。NAME: 要操作的资源对象名称,大小写敏感。flags:命令行选项

在一个命令行中可以同时对多个资源对象进行操作,以多个TYPE和NAME的组合表示:

获取多个相同类型资源的信息。获取多种不同类型对象的信息。同时应用多个YAML文件,以多个-f file参数表示。 3.2 kubectl子命令详解

包括资源对象的创建、删除、查看、修改、配置、运行等。



kubectl可操作的资源对象列表,可以通过kubectl api-resources命令进行查看.

get命令常用输出格式
语法:

kubectl [command] [TYPE] [NAME]  -o=


-n或–namespace:命令执行的目标名称空间.

3.3 kubectl命令常用操作 3.3.1 创建资源对象
    命令行式创建名为develop的namespace对象
$ kubectl create namespace develop
    声明式创建名为development和production的namespace对象: two-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: development
  
---

apiVersion: v1
kind: Namespace
metadata:
  name: production 
$ kubectl apply -f two-ns.yaml
3.3.2 查看资源对象

kubectl get命令常用于查看同一资源类型的一个或多个资源对象,可以使用-o或
--output参数自定义输出格式,还可以通过-w或--watch参数开启对资源对象更新的监控 。

列出所有Pod

kubectl get pods
kubectl get pods -o wide

列出指定名称的RC

kubectl get replicationcontroller 

列出所有RC和Service

kubectl get rc,services

列出所有Daemonset

kubectl get ds

列出在节点server01上运行的所有Pod

$ kubectl get pods --field-selector=spec.nodeName=server01

列出系统上所有的Namespace资源对象

$ kubectl get namespaces

一次查看多个资源类别下的资源对象

$ kubectl get pods,services -o wide

列出kube-namespace名称空间中拥有k8s-app标签名称的所有Pod对象

$ kubectl get pods -l k8s-app -n kube-system

获取指定Namespace对象中的资源对象的信息

$ kubectl get pods -n kube-system

取出kube-system名称空间中带有k8s-app=kube-dns标签的Pod对象的资源名称

$ kubectl get pods -l k8s-app=kube-dns -n kube-system -o jsonpath="{.items[0].metadata.name}"

查看kube-system名称空间中API Server相关Pod对象的资源配置清单(期望的状态)及当前的状态信息,并输出为YAML格式

$ kubectl get pods kube-apiserver-ops200 -o yaml -n kube-system

kubectl describe命令还能显示当前对象相关的其他资源对象查看kube-system名称空间中拥有标签component=kube-apiserver的Pod对象的详细描述信息

$ kubectl describe pods -l component=kube-apiserver -n kube-system

打印容器中的日志信息

取出kube-system名称空间中带有指定标签的一个Pod对象
$ DNS_POD=$(kubectl get pods -l k8s-app=kube-dns -n kube-system -o jsonpath="{.items[0].metadata.name}")
# 查看该Pod对象的日志
$ kubectl logs $DNS_POD -n kube-system
3.3.3 查看资源对象详细信息

kubectl describe命令更侧重于描述指定资源的各方面详细信息,通过对 API Server
的多个API调用来构建结果视图。例如通过 kubectl describe node 命令不仅会返回节点信息,还会返回在其上运行的 Pod 的摘要、节点事件等信息。

kubectl describe:显示一个或多个资源的详细信息

显示名称为的节点详细信息

kubectl describe nodes 

显示名称为的Pod的详细信息

kubectl describe pods/

显示名称为的RC控制器管理的所有Pod的详细信息

kubectl describe pods  

描述所有Pod的详细信息

kubectl describe pods
3.3.4 删除资源对象

kubectl delete该命令可以使用文件、 stdin 的输入删除指定的资源对象,还可以通过标签选择器、名
称、资源选择器等条件来限定待删除的资源范围。

kubectl delete -f  pod.yaml

先查看, 再删除dev名称空间中名为demoapp的Service资源对象

$ kubectl get services -n dev
$ kubectl delete services demoapp -n dev

删除kube-system名称空间中带有k8s-app=kube-proxy标签的所有Pod对象 危险操作

$ kubectl delete pods -l k8s-app=kube-proxy -n kube-system

删除指定名称空间中的所有某类对象

kubectl delete TYPE --all -n NS格式的命令

删除所有带有'='标签的Pod和Service

kubectl delete pods, services -l =

删除所有Pod,包括未初始化的Pod

kubectl delete pods -all
3.4 Pod中的容器常用操作 3.4.1 进入Pod中的容器运行命令

kubectl exec在Pod容器中运行命令

在名称为的Pod的第1个容器中运行date命令并打印输出结果

kubectl exec  --  date

在指定的容器中运行date命令并打印输出结果

kubectl exec  -c  -- date

在Pod的第1个容器中运行/bin/bash命令进入交互式TTY终端界面

kubectl exec -it  --  /bin/bash
3.4.2 打印Pod中容器的日志

kubectl logs: 打印Pod中容器的日志

kubectl  logs 

显示Pod中名称为的容器输出到stdout的日志

kubectl logs  -c 

持续监控显示Pod中的第1个容器输出到stdout的日志

kubectl logs -f 

在线编辑运行中的资源对象

kubectl edit deploy nginx

在容器和Node之间复制文件

kubectl cp nginx-dfd-df:/etc/fstab    /tmp

设置资源对象的标签

kubectl label namespaces default  testing=true
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703949.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号