kubectl:k8s集群管理命令
kubectl主要职责是对资源对象进行操作。
k8s当中一切皆为资源;
资源对象表
| 资源 | 缩写 | 说明 |
|---|---|---|
| cluster | 集群 | |
| componentstatu ses | cs | 组件对象状态 |
| configmaps | cm | ConfigMap是k8s配置管理工具 |
| daemonsets | ds | DaemonSet管理node节点运行Pod |
| deployments | deploy | K8S控制器 |
| endpoints | ep | Endpoints是实现服务的端点集合 |
| events | ev | 记录集群运行时的各种事件 |
| ingress | ing | API对象,边缘路由功能 |
| nodes | no | 节点 |
| namespaces | ns | 命名空间 |
| pods | po | 获取Pod信息 |
| replicasets | rs | 用户指定数量的Pod副本 |
| cronjob | 周期性任务控制,不需要持续在后台运行 | |
| services | svc | 各种服务 |
ini
# 查看API资源
kubectl api-resources
# 查看API版本
kubectl api-versions


- 查看资源
ini
kubectl get 资源 -o 格式
* wide 显示详细信息
* json 以json格式显示详细信息
* yaml 以yaml格式显示详细信息
-w 等待显示资源状态的修改
- 创建资源
ini
vim 01-nginx-pod.yml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: web
spec:
hostNetwork: true
containers:
- name: nginx
image: docker.io/library/nginx:latest
ports:
- containerPort: 80
ini
#创建资源
kubectl create -f 01-nginx-pod.yml

- 删除资源
ini
kubectl delete -f 01-nginx-pod.yml
kubectl delete pod nginx -n default
kubecyl delete 资源类型 名称 -n 命名空间

- 更新资源
ini
#当资源不存在时创建资源,也可以更新资源
kubectl apply -f 01-nginx-pod.yml

- 查询资源的详细信息,运行状态,常用于排错
ini
kubectl describle pod nginx

- 查看运行日志,用于排错
ini
kubectl logs nginx

- 在线更新运行中配置,yaml格式
ini
kubectl edit pod nginx

- 进入容器
ini
kubectl exec -it pod -- bash

- 直接创建pod启动容器
ini
kubectl run --image=docker.io/library/tomcat:latest tomcat-app --port=8080
kubectl delete pod tomcat-app

- 双向复制
ini
kubectl cp 01-nginx-pod.yml nginx:/opt
kubectl cp nginx:/opt/ ./


Node节点操作
-
添加:
-
准备工作:
- 1.docker
- 2.系统优化
-
让master生成join+token命令
inikubeadm token create --print-join-command -
Node节点执行
kubeadm join命令ini#systemctl start kubelet kubeadm join 192.168.8.131:6443 --token 46s6gy.t1fl09u3fzfpqbaq --discovery-token-ca-cert-hash sha256:6eb4f59d8fec9502cb5bdcca68514641dd28877ed125e037e82c3029ad03efea
-
-
删除:
- Master中设置Node为不可调用
inikubectl cordon node2- 在Master节点中强制驱逐Node中Pod
inikubectl drain node2 --ignore-daemonsets --delete-emptydir-data- 从Master节点中删除节点记录
inikubectl delete node node2- 清理被移除的节点
ini#关闭kubelet systemctl stop kubelet #重置所有k8s配置 kubeadm reset #清理残余数据:删除 etcd 数据目录和 Kubernetes 配置文件: rm -rf /etc/cni/net.d /var/lib/kubelet /var/lib/etcd


