kubectl:k8s集群管理命令和Node节点

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命令

      ini 复制代码
      kubeadm 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为不可调用
    ini 复制代码
    kubectl cordon node2
    • 在Master节点中强制驱逐Node中Pod
    ini 复制代码
    kubectl drain node2 --ignore-daemonsets --delete-emptydir-data
    • 从Master节点中删除节点记录
    ini 复制代码
    kubectl 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



相关推荐
无巧不成书02181 分钟前
基于WSL 2的Docker远程开发全栈实战指南
运维·docker·容器·docker desktop·wsl 2·vs code远程开发·容器化开发
Renhao-Wan3 分钟前
Docker 核心原理详解:镜像、容器、Namespace、Cgroups 与 UnionFS
java·后端·docker·容器
赵庆明老师5 分钟前
Linux Docker打包
linux·运维·docker
Eloudy6 分钟前
docker pull ubuntu:22.04 失败的解决记录
运维·docker·容器
taWSw5OjU2 小时前
Docker] Docker中`overlay2`磁盘占用爆满的清理方案
docker·容器·eureka
Ashmcracker2 小时前
Azure Key Vault 证书如何在 AKS 中同步为 Kubernetes Secret?附权限配置与 YAML 示例
kubernetes·flask·azure
wwj888wwj16 小时前
Docker基础(复习)
java·linux·运维·docker
DONG99917 小时前
配置docker代理
docker·容器
怎么就重名了17 小时前
docker可以动态修改端口映射吗
运维·docker·容器
JEECG低代码平台18 小时前
敲敲云零代码平台一键部署实战:命令安装 vs Docker 安装
运维·docker·容器