您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# kubectl入门知识点有哪些
## 目录
1. [什么是kubectl](#什么是kubectl)
2. [安装与配置](#安装与配置)
3. [基础命令结构](#基础命令结构)
4. [核心操作命令](#核心操作命令)
5. [资源管理](#资源管理)
6. [调试与排错](#调试与排错)
7. [高级功能](#高级功能)
8. [最佳实践](#最佳实践)
9. [常见问题](#常见问题)
10. [学习资源](#学习资源)
---
## 什么是kubectl
kubectl是Kubernetes官方提供的命令行工具,用于与Kubernetes集群进行交互。作为K8s生态中的"瑞士军刀",它允许用户:
- 部署和管理应用程序
- 检查集群资源
- 查看日志
- 执行故障排查
**关键特性**:
- 支持声明式和命令式操作
- 兼容多个Kubernetes版本
- 可扩展的插件系统
---
## 安装与配置
### 安装方法
```bash
# Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# macOS
brew install kubectl
# Windows
choco install kubernetes-cli
默认位置:~/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0t...
server: https://api.cluster.example
name: my-cluster
contexts:
- context:
cluster: my-cluster
user: admin
name: prod
current-context: prod
users:
- name: admin
user:
client-certificate-data: LS0t...
client-key-data: LS0t...
kubectl config view # 查看配置
kubectl config use-context prod # 切换上下文
kubectl config set-cluster my-cluster --server=https://api.new-cluster.example
kubectl命令遵循统一模式:
kubectl [command] [TYPE] [NAME] [flags]
组成部分:
- command
:操作类型(create/get/describe等)
- TYPE
:资源类型(pod/deployment/service等)
- NAME
:资源名称(支持正则)
- flags
:可选参数
示例:
kubectl get pods -n kube-system
kubectl describe deployment/my-app
命令 | 作用 |
---|---|
kubectl get |
列出资源 |
kubectl describe |
显示详细信息 |
kubectl create |
创建资源 |
kubectl apply |
应用YAML配置 |
kubectl delete |
删除资源 |
# 查看所有命名空间的Pod
kubectl get pods --all-namespaces
# 使用标签筛选
kubectl get pods -l app=nginx
# 输出格式化
kubectl get nodes -o wide
kubectl get services -o yaml
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
应用配置:
kubectl apply -f deployment.yaml
kubectl edit deployment/nginx-deployment # 直接编辑
kubectl logs <pod-name>
kubectl logs -f <pod-name> -c <container> # 实时日志
kubectl logs --previous <pod-name> # 崩溃容器的日志
kubectl exec -it <pod-name> -- /bin/sh
kubectl exec <pod-name> -- env
kubectl top pod # 资源使用情况
kubectl get events # 查看集群事件
kubectl port-forward svc/my-service 8080:80 # 端口转发
# 安装插件
kubectl krew install <plugin-name>
# 常用插件
- kubectl-neat:清理YAML中的默认字段
- kubectl-tree:显示资源层级关系
- kubectl-whoami:检查当前用户权限
kubectl get pods -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'
# 删除所有Evicted状态的Pod
kubectl get pods --all-namespaces | grep Evicted | awk '{print $2}' | xargs kubectl delete pod
apply
而非create
安全建议:
# 使用最小权限原则
kubectl create role pod-reader --verb=get --verb=list --resource=pods
kubectl create rolebinding bob-pod-reader --role=pod-reader --user=bob
检查RBAC权限和当前上下文:
kubectl auth can-i create deployments
kubectl config current-context
kubectl describe pod <pod-name> # 查看事件
kubectl get nodes # 检查节点资源
kubectl rollout history deployment/<name>
kubectl rollout undo deployment/<name> --to-revision=2
# 快速搭建测试集群
minikube start
kind create cluster
提示:使用
kubectl --help
可随时查看命令帮助,大多数子命令也支持--help
参数 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。