Skip to main content

3、基础命令

Y-aong...About 4 mink8s部署devops

3、基础命令

一、命令概述

# 初学者掌握的命令
Basic Commands (Beginner): 
  create        从文件或stdin中创建资源。
  expose        获取一个复制控制器、服务、部署或pod
# k8s服务
Kubernetes Service
  run           在集群上运行一个特定的映像
  set           设置对象的具体特性

Basic Commands (Intermediate): 基础命令
  explain       资源文档
  get           显示一个或多个资源
  edit          编辑服务器上的资源
  delete        按文件名、stdin、资源和名称或按资源和标签删除资源
  selector		选择器

Deploy Commands:   #部署用的命令
  rollout       管理资源的回滚
  scale         为部署控制器、复制集控制器或复制控制器设置新的大小
  autoscale     自动缩放Deployment、ReplicaSet、StatefulSet或ReplicationController


Cluster Management Commands:  #集群管理的命令
  certificate   修改证书资源。
  cluster-info  显示集群信息
  top           显示资源(CPU/内存)使用率。
  cordon        将节点标记为不可调度
  uncordon      将节点标记为可调度的
  drain         排水节点,为维护做好准备
  taint         更新一个或多个节点上的污点

Troubleshooting and Debugging Commands:  # debug的命令
  describe      打印pod中容器的日志
  logs          打印pod中容器的日志
  attach        附着在运行中的容器上
  exec          在容器中执行命令
  port-forward  将一个或多个本地端口转发到pod
  proxy         向Kubernetes API服务器运行代理
  cp            在容器中拷贝文件和目录。
  auth          检查授权
  debug         为故障排除工作负载和节点创建调试会话

Advanced Commands:  # 高阶命令
  diff          实际版本与潜在应用版本的差异
  apply         通过文件名或stdin将配置应用到资源
  patch         patch资源的更新字段
  replace       用文件名或标准输入替换资源
  kustomize     从一个目录或URL构建一个定制目标。

Settings Commands:  # 设置
  label         更新资源标签
  annotate      更新资源的注解
  completion    输出指定shell (bash或zsh) #的shell补全代码

Other Commands:  #其他
  api-resources 打印服务器上支持的API资源
  api-versions  打印服务器上支持的API版本,格式为"group/version"
  config        修改kubecconfig文件
  plugin        提供与插件交互的实用程序。
  version       打印客户端和服务器版本信息

二、简单示例

  • 创建和部署
#1、部署
kubectl apply -f deployment.yaml

#2、移除
kubectl delete -f deployment.yaml
  • kubectl get 显示资源列表
# kubectl get 资源类型

#获取类型为Deployment的资源列表
kubectl get deployments
#获取类型为Pod的资源列表
kubectl get pods
#获取类型为Node的资源列表
kubectl get nodes

# 查看所有名称空间的 Deployment
kubectl get deployments -A
kubectl get deployments --all-namespaces
# 查看 kube-system 名称空间的 Deployment
kubectl get deployments -n kube-system

# 查看pod详细信息
kubectl get pods -o wide

# 以yaml形式查看pod
kubectl get pod pod_name -o yaml
  • kubectl create 创建k8s集群中的一些对象
# kubectl create 创建k8s集群中的一些对象

kubectl create --help
kubectl create deployment 这次部署的名字 --image=应用的镜像

kubectl create deployment my-nginx --image=nginx

##最终在一个机器上有pod、这个pod其实本质里面就是一个容器
k8s_nginx_my-nginx-6b74b79f57-snlr4_default_dbeac79e-1ce9-42c9-bc59-c8ca0412674b_0
### k8s_镜像(nginx)_pod名(my-nginx-6b74b79f57-snlr4)_容器名(default_dbeac79e-1ce9-42c9-bc59-c8ca0412674b_0)

# Create a deployment with command
kubectl create deployment my-nginx --image=nginx -- date

# Create a deployment named my-nginx that runs the nginx image with 3 replicas.
kubectl create deployment my-nginx --image=nginx --replicas=3

# Create a deployment named my-nginx that runs the nginx image and expose port 80.
kubectl create deployment my-nginx --image=nginx --port=80
  • kubectl describe 显示有关资源的详细信息
# kubectl describe 资源类型 资源名称

#查看名称为nginx-XXXXXX的Pod的信息
kubectl describe pod pod_name

#查看名称为nginx的Deployment的信息
kubectl describe deployment deploy_name
  • kubectl logs 查看pod中的容器的打印日志
kubectl logs -f pod_name
  • kubectl exec 在pod中的容器环境内执行命令
# kubectl exec Pod名称 操作命令,类似docker exec

kubectl exec -it pod_name /bin/bash
  • kubectl run 可以独立跑一个Pod
kubectl run nginx --image=nginx


  • kubectl expose 暴露,形成一个负载均衡网络
 kubectl expose deployment tomcat6 --port=8912 --target-port=8080 --type=NodePort
 
 ## --port:集群内访问service的端口 8912
 ## --target-port: pod容器的端口 8080
 ## --nodePort: 每个机器开发的端口 30403
  • kubectl rollout 回滚操作
### 查看历史记录
kubectl rollout history deployment.apps/tomcat6
kubectl rollout history deploy tomcat6

### 回滚到指定版本
kubectl rollout undo deployment.apps/tomcat6 --to-revision=1
kubectl rollout undo deploy tomcat6 --to-revision=1
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.15.8