k8s 常用命令

官方文档:http://docs.kubernetes.org.cn/683.html

kubectl get

获取列出一个或多个资源的信息。

可以使用的资源包括:

  • componentstatuses (缩写 cs)
  • deployments (缩写 deploy)
  • namespaces (缩写 ns)
  • nodes (缩写 no)
  • pods (缩写 po)
  • replicasets (缩写 rs)
  • services (缩写 svc)
kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags] [options]
#查看节点信息列表
kubectl get nodes
#查看所有的namespace列表
kubectl get namespace

#获取default的namespace的pod列表
kubectl get pods
#获取指定的namespace的pod列表
kubectl get pods -n xxx
#获取全部的namespace的pod列表
kubectl get pods -A
kubectl get pods --all-namespaces
#获取pod信息和节点信息列表
kubectl get pods -o wide
# 列出Pod以及运行Pod节点信息以及labels信息。
kubectl get pods -o wide --show-labels
# 查看指定名称空间的详细信息
kubectl get pods -n kube-system -o wide
# 列出指定NAME的信息。
kubectl get deployments nginx -n kube-system
# 列出组件的状态信息
kubectl get cs
# 列出kubernetes名称空间
kubectl get ns
# 查看kubenetes节点信息
kubectl get nodes
# 查看default中的service服务 \查看端口映射
kubectl get svc
# 查看kube-system中的service服务
kubectl get svc -n kube-system

# 查看kubu-system中service服务的详细信息和label标签
kubectl get svc -n kube-system --show-labels -o wide
# 查看 secret
kubectl get secret -n kube-system 
# 查看deployment
kubectl get deploy -n dmp-plugin
# 查看ReplicaSet
kubectl get rs

kubectl describe

输出指定的一个或多个资源的详细信息

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]
# 查看一个node信息
kubectl describe nodes master
# 查看一个pod信息
kubectl describe pods/nginx -n xxx
# 查看pod.json中的资源类型和名称指定的pod
kubectl describe -f pod.json
# 查看所有的pod
kubectl describe pods -n xxx
kubectl describe pods -A
# 查看 token
kubectl describe secret kubernetes-dashboard --namespace=kube-system

kubectl run

创建并运行一个或多个容器镜像。
创建一个deployment 或job 来管理容器

kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool]
[--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]

# 启动nginx实例,默认是创建在default名称空间
kubectl run nginx --image=nginx
# 创建到指定的namespace空间中
kubectl run nginx --image=nginx:1.8 --replicas=5 -l name=nginx -n myNameSpace
# 启动hazelcast实例,暴露容器端口 5701。
kubectl run hazelcast --image=hazelcast --port=5701
# 启动一个名为busybox的实例,镜像busybox,并且进入容器内。
kubectl run -i -t busybox --image=busybox --restart=Never

kubectl delete

通过文件名、控制台输入、资源名或者label selector删除资源。接受JSON和YAML格式的描述文件。

只能指定以下参数类型中的一种:文件名、资源类型和名称、资源类型和label selector。 注意:delete命令不检查资源版本,如果有人在你进行删除操作的同时进行更新操作,他所做的更新将随资源同时被删除。

kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)]) [options]
# 使用 pod.json中指定的资源类型和名称删除pod。
kubectl delete -f ./pod.json
# 根据传入stdin的JSON所指定的类型和名称删除pod。
cat pod.json | kubectl delete -f -
# 删除名为“baz”和“foo”的Pod和Service。
kubectl delete pod,service baz foo
# 删除 Label name = myLabel的pod和Service。
kubectl delete pods,services -l name=myLabel
# 强制删除dead node上的pod
kubectl delete pod foo --grace-period=0 --force
# 删除所有pod
kubectl delete pods --all
# 删除deployments控制器中名字为nginx
kubectl delete deployments nginx
# 删除kube-system名称空间中的nginx
kubectl delete deployments nginx -n kube-system
# 删除一个ns(删除是异步的,所以有一段时间你会看到名字空间处于 Terminating 状态)
kubectl delete namespaces <insert-some-namespace-name>

注意
默认情况下,所有删除在30秒内都是正常的。
kubectl delete命令支持-grace-period = 选项,该选项允许用户覆盖默认值并指定自己的值。值0强制删除pod.
在kubectl version> = 1.5中,必须指定一个附加标志–force以及–grace-period = 0才能执行强制删除。

kubectl expose

将资源暴露为新的Kubernetes Service。

kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name]
[--name=name] [--external-ip=external-ip-of-service] [--type=type] [options]
# 为deployments的nginx创建service,并通过Service的80端口转发至容器的8000端口上。
kubectl expose rc nginx --port=80 --target-port=8000
# 由“nginx-controller.yaml”中指定的type和name标识的RC创建Service,并通过Service的80端口转发至容器的8000端口上。
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000
# 暴露指定空间中的资源,例如下面指定暴露kube-system中的nginx资源暴露service名称为ye-nginx-service暴露的端口是80,容器的端口也是80(target-port)。
kubectl expose deployments nginx  --port=80 --protocol=TCP --target-port=80  --name=ye-nginx-service -n kube-system

kubectl scale

扩容或缩容 Deployment、ReplicaSet、Replication Controller或 Job 中Pod数量。
scale也可以指定多个前提条件,如:当前副本数量或 –resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。

kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME) [options]
# 将deployments副本控制器中名为nginx的pod副本数设置为3。
kubectl scale --replicas=3 deployments nginx_deployment -n kube-system
# 将由“foo.yaml”配置文件中指定的资源对象和名称标识的Pod资源副本设为3。
kubectl scale --replicas=3 -f foo.yaml
# 如果当前副本数为2,则将其扩展至3。
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

kubectl logs

# 查看pod错误日志
kubectl logs -f {podName} --namespace=kube-system

kubectl create

# 创建deployment资源
kubectl create -f nginx-deployment.yaml
# 快速生成deployment.yaml
kubectl create deployment nginx --image=nginx -o yaml --dry-run > deployment.yaml
kubectl expose deployment nginx --port=80 --type=NodePort -o yaml --dry-run > svc.yaml
# 创建一个新的ns
kubectl create namespace <insert-namespace-name-here>
#还可以通过dev.json方式创建
#{
#  "apiVersion": "v1",
#  "kind": "Namespace",
#  "metadata": {
#    "name": "dmp-plugin",
#    "labels": {
#      "name": "development"
#    }
#  }
#}
#然后执行
#kubectl create -f ./dev.json
#集群划分为两个名字空间:development 和 production
#kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
#kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
#kubectl get namespaces --show-labels

kubectl apply

kubectl apply -f FILENAME
# 滚动更新镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.11
# 或者
kubectl edit deployment/nginx-deployment
# 或者
kubectl apply -f nginx-deployment.yaml
# 将pod.json中的配置应用到pod
kubectl apply -f ./pod.json
# 将控制台输入的JSON配置应用到Pod
cat pod.json | kubectl apply -f -

kubectl label

#设置为master
kubectl label nodes 10.101.232.36 node-role.kubernetes.io/master=
#或者hostname = master
kubectl label nodes master node-role.kubernetes.io/master=
#设置为node
kubectl label nodes slave1 node-role.kubernetes.io/node=

kubectl rollout

kubectl rollout restart deployment {deploy_name} -n {ns}

docker

docker save

# docker save : 将指定镜像保存成 tar 归档文件。
docker save [OPTIONS] IMAGE [IMAGE...]
# 打包所有镜像 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o images.tar

docker rmi

# 打包所有镜像
docker rmi -f $(docker images -qa)
很抱歉,我无法提供思维导图。但是,我可以为您提供一些常用的Kubernetes命令。以下是一些常用的Kubernetes命令: 1. kubectl get pods:获取当前集群中的所有Pods的信息。 2. kubectl get deployments:获取当前集群中的所有Deployments的信息。 3. kubectl get services:获取当前集群中的所有Services的信息。 4. kubectl create deployment \[deployment-name\] --image=\[image-name\]:创建一个新的Deployment。 5. kubectl scale deployment \[deployment-name\] --replicas=\[number\]:扩展或缩小一个Deployment的副本数量。 6. kubectl delete deployment \[deployment-name\]:删除一个Deployment。 7. kubectl describe pod \[pod-name\]:获取一个Pod的详细信息。 8. kubectl logs \[pod-name\]:获取一个Pod的日志。 9. kubectl exec -it \[pod-name\] -- \[command\]:在一个Pod中执行一个命令。 10. kubectl apply -f \[file-name\]:使用一个YAML文件创建或更新资源。 这些是一些常用的Kubernetes命令,可以帮助您管理和操作Kubernetes集群中的资源。希望对您有所帮助! #### 引用[.reference_title] - *1* *2* *3* [k8s学习-思维导图与学习笔记](https://blog.csdn.net/lady_killer9/article/details/124544947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值