kubectl常⽤命令
1 kubectl命令遵循这⼀语法格式:kubectl an_action a_resource a_resource_name –flags
2 kubectl get all显⽰运⾏中的Pod、Service、Deployment以及ReplicaSet的关键信息,all是指所有已存在的资源,
3 kubectl get events显⽰了event的历史记录。它像是Kubernetes级别的⽇志,⽽不是容器级别的⽇志。
4
help—获取帮助如,kubectl get pods –help
get— 显⽰有关⼀个或多个资源的信息。可以将get和单个对象⼀起使⽤,并添加--watch标志以实时观察更新。
describe—显⽰关于⼀个或多个资源的详细信息
logs—显⽰容器⽇志。logs命令需要⼀个pod名称。当在多个pod中时,使⽤-c my-container标志来指定⼀个容器。使⽤--previous标志来获取不再运⾏的容器信息
exec—进⼊容器中⼀个正在运⾏的进程。例如,要在my_pod中进⼊容器并运⾏Bash,请输⼊kubectl exec -it my_pod bash。
apply—创建或选择⼀个资源。如果资源不存在,apply将创建它;如果它存在,apply将更改它
delete—删除⼀个或多个资源。 kubectl delete pod my_pod这⼀命令可⽤于删除名称为my_pod的Pod。要删除所有相同类型的资源,需要使⽤--all标志。例如,使⽤kubectl delete rs –all 。请注意,如果你尝试这⼀操作,那么要先删除Deployment,否则ReplicaSet将会重新启动。
kubectl delete namespace demo-namespace
删除命名空间不仅删除命名空间,还会清理其中部署了的所有资源
5 kubectl使⽤配置⽂件来访问Kubernetes集。
1. 如果设置了--kubeconfig标志,则仅加载给定⽂件。该标志只能设置⼀次,不会发⽣合并。
2. 如果设置了$ KUBECONFIG环境变量,则根据系统的正常路径分隔规则,将其解析为⽂件系统路径列表。
3. 否则,如果上述两项都未设置,则使⽤${HOME}/.kube/config ⽂件,不进⾏任何合并
6 查看当前配置:kubectl config view
查看配置的摘要:kubectl config get-contexts
7 查看当前使⽤的上下⽂:kubectl config current-context
更改连接的上下⽂:kubectl config use-context ***
更改当前上下⽂的命名空间:kubectl config set-context --current --namespaces=rancher
修改当前上下⽂的命名空间:kubectl config set-context $(kubectl config current-context) --namespace=demo-namespace
恢复到默认命名空间:kubectl config set-context $(kubectl config current-context) --namespace=
8 检测核⼼组件状态:kubectl get cs 【如果你的集运⾏不正常,这是⼀个很好的、进⾏第⼀次诊断检查的机会】
9 收集服务信息:kubectl cluster-info
10 查看节点信息:kubectl get nodes -o wide
11 可⽤的命名空间:kubectl get namespaces 创建命名空间:kubectl create namespace test-demo
跨命名空间查询集上的资源:kubectl get all --all-namespaces
通过⽂件创建命名空间:kubectl apply -l
要将操作应⽤于不同的命名空间,我们必须在命令中包含—namespace=这⼀选项,如 kubectl create deployment --image nginx demo-nginx --namespace=demo-namespace
查看指定命名空间⾥的资源:kubectl create deployment --image nginx demo-nginx --namespace=demo-namespace
12 查询资源最新的事件:kubectl get events --all-namespaces
13 查看当前部署的pod: kubectl get pods
查看pod所属的命名空间;kubectl get pods --all-namespaces
14 清理部署的资源:kubectl delete deployment nginx
15 pod
16 资源删除
17 服务
18 事件
19 命名空间
20 终极命令
21 scale
22 利⽤wget访问页⾯:
23 创建服务:kubectl expose
24 创建deployment
25 升级 & 回滚
26 编辑:
27
28 通过⽂件创建:
29 基于⽂件删除:
30 查询资源定义字段有哪些:kubectl explain pods kubectl
31 ⼤部分资源的配置清单:apiVersion:group/version
$ kubectl api-version
kind: 资源类别
metadata:元数据
name
namespace
labels
docker重启容器命令annotations
spec:期望的状态
status:当前状态,本字段由kubernetes维护
32
查看名称空间:kubectl get namespace 或 kubectl get ns (namespace简称ns)
查看空间中的资源:kubectl get all -n default
创建空间:kubectl create namespace app
删除空间:kubectl delete namespace app
创建deployment(简写deploy):kubectl create deployment nginx-dp --image=nginx:1.7.9 -n kube-public
查看deployment : kubectl get deployment -n kube-public
展⽰扩展信息(-o wide):kubectl get pods -n kube-public -o wide
看详细信息:kubectl describe deployment nginx-dp -n kube-public
进⼊pod:kubectl -exec -it pod-id /bin/bash -n kube-public
删除pod(删除是重启的⽅法之⼀):kubectl delete pod pod-id -n kube-public [--force --grace-period=0 ]
删除deployment:kubectl delete deploy nginx-dp -n kube-public
创建服务:kubectl expose deployment nginx-dp --port=80 -n kube-public
查看服务:kubectl get svc -n kube-public
扩容:kubectl scale deployment nginx-dp --replication=2 -n kube-public
命令⼤全:kubectl --help
查看yaml:kubectl get pods pod-id -o yaml -n kube-public
查看yaml中字段含义:kubectl adata
语法格式:kubectl create/apply/delete -f /path/yaml
应⽤yaml:kubectl apply -f nginx-svc.yaml
利⽤yaml删除:kubectl delete -f nginx-svc.yaml
在线修改yaml:kubectl edit svc nginx-dp
daemonset缩写ds
33
查看资源名称:kubectl api-resources
查看资源字段规范:kubectl explian deployment.spec --recursive
kubectl explain仅显⽰单个级别的字段。你可以使⽤--recursive标志来显⽰所有级别的字段
⾃定义列输出选项的⽤法如下:kubectl get pods -o custom-columns='NAME:metadata.name'
kubectl get pods -o custom-columns='NAME:metadata.name,deName'
# Pod调度的节点保存在Pod的deName字段中(请参阅kubectl explain deName)
# Select all elements of a list
kubectl get pods -o custom-columns='ainers[*].image'
# Select a specific element of a list
kubectl get pods -o custom-columns='ainers[0].image'
# Select those elements of a list that match a filter expression
kubectl get pods -o custom-columns='ainers[?(@.image!="nginx")].image'
# Select all fields under a specific location, regardless of their name
kubectl get pods -o custom-columns='DATA:metadata.*'
# Select all fields with a specific name, regardless of their location
kubectl get pods -o custom-columns='DATA:..image'
34
kubectl logs rc-nginx-2-kpiqt logs命令⽤于显⽰pod运⾏中,容器内程序输出到标准输出的内容
kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml 对于已经部署并且正在运⾏的业务,rolling-update提供了不中断业务的更新⽅式kubectl scale rc rc-nginx-3 —replicas=4 scale⽤于程序在负载加重或缩⼩时副本进⾏扩容或缩⼩
kubectl autoscale rc rc-nginx-3 —min=1 —max=4 autoscale命令会给⼀个rc指定⼀个副本数的范围
kubectl attach kube-dns-v9-rcfuk -c skydns —namespace=kube-system attach命令类似于docker的attach命令,可以直接查看容器中以daemon形式运⾏的进程的输出
kubectl version
kubectl api-versions
======
kubectl cluster-info
Kubernetes master is running at 172.16.16.3:6443
coredns is running at 172.16.16.3:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy
kubernetes-dashboard is running at 172.16.16.3:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy 多个yaml⽂件
kubectl create -f nginx -deploy.yaml - f nginx-svc.yaml
列出 kube-namespace名称空间中拥有 k8s-app 标签名称的所有 Pod 对象:
kubectl get pods -1 k8s-app -n kube-system
kubectl logs -f
为上⾯的命令添加“ J”选项,还能⽤于持续监控指定容器中的⽇志输出
复制 master 主机上的 /etc/f ⾄相关⽤户主⽬录下的 .kube/config ⽂件即可正常执⾏
打印环境变量
kubectl exec jupyterhub-7c9f5458dc-flt7k -n baaisys-oauth -- printenv
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论