1、kubectl 概述
kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能
够在集群上进行容器化应用的安装部署。
2、kubectl 命令的语法
(1)comand:指定要对资源执行的操作,例如 create、get、describe 和 delete
(2)TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的
形式。例如:
(3)NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源,
例如:
(4)flags:指定可选的参数。例如,可用-s 或者–server 参数指定 Kubernetes API
server 的地址和端口。
3、kubectl help 获取更多信息
4、kubectl 子命令使用分类
(1)基础命令
(2)部署和集群管理命令
(3)故障和调试命令
(4)其他命令
(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
2.查看pod
kubectl get pods
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