1、kubectl 概述

kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能
够在集群上进行容器化应用的安装部署。

2、kubectl 命令的语法

image.png

(1)comand:指定要对资源执行的操作,例如 create、get、describe 和 delete
(2)TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的
形式。例如:

image.png

(3)NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源,
例如:

image.png

(4)flags:指定可选的参数。例如,可用-s 或者–server 参数指定 Kubernetes API
server 的地址和端口。

3、kubectl help 获取更多信息

image.png
image.png
image.png
image.png

4、kubectl 子命令使用分类

(1)基础命令

image.png

(2)部署和集群管理命令

image.png

(3)故障和调试命令

image.png

(4)其他命令

image.png

(5) 常用命令

#创建一个nginx的pod
kubectl create deployment nginx --image=nginx

#对外暴露nginx端口
kubectl expose deployment nginx --port=80 --type=NodePort

#查询对外暴露的详情信息
kubectl get pod,svc

#查询node状态
kubectl get node

#查询节点状态
kubectl get cs

#执行一个编写好的编排策略文件
kubectl apply -f *.yml


      

关于污点的操作

#设置taint(添加污点)

kubectl taint node [node] key=value[effect]   
     #其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]
      #NoSchedule: 一定不能被调度
      #PreferNoSchedule: 尽量不要调度
      #NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

#查看k8s-nodea节点被添加的污点信息
kubectl describe node k8s-node1 | grep Taint 

#查Pod创建在哪个节点上面
kubectl get pods -o wide

#删除污点
  # 这里的key可以不用指定value
kubectl taint node node1 key1:NoExecute-
# kubectl taint node node1 key1-  删除指定key所有的effect
kubectl taint node node1 key2:NoSchedule-

删除pod

K8S 不能直接删除Pod,直接删除Pod,会被Deployment重启
先删除deployment.
1.查看deployment

kubectl get deployment

image.png
2.查看pod

kubectl get pods

image.png
3.删除deployment:

kubectl delete deployment web

4.可以强制删除:

kubectl delete pod pod-name -n ns-name --force --grace-period=0

5.删除service

#my-service 为service的Name
kubectl delete service my-service
posted on 2024-01-25 17:16  bigdate  阅读(2)  评论(0编辑  收藏  举报