3、基础命令
...About 4 min
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
Powered by Waline v2.15.8