kubectl api-resources // 查看k8s的api对象(Namespace,这列代表该对象是【命名空间级别资源】,还是【集群级别资源】)
命名空间级别(调用get需要指定n参数,命名空间):
kubectl get pods -n my-namespace
集群级别
kubectl get nodes
kubectl get pods --all-namespaces -o wide // -o参数,可以查看更多信息,例如pod的ip,所在节点(node)等
kubectl create deploy ngx-dep --image=nginx:alpine --dry-run=client -o yaml // 创建yaml样板文件(这样出来的yaml,还需配置存活探针、就绪探针、启动探针)
【ps】教程上面说
先设置环境变量
export OUT_OPTIONS="--dry-run=client -o yaml"
再使用变量
kubectl create deploy ngx-dep --image=nginx:alpine $OUT_OPTIONS
这样子是因为需要多次导出,所以才先定义一个环境变量,就不用每次都写--dry-run=client -o yaml,这个参数
kubectl delete deployment ngx-dep // 删除掉ngx-dep这个deployment
kubectl delete pod ngx-dep-6796688696-jm6tt // 这个仅仅是删除pod,一般我们都是用deployment来拉起pod,所以实际上很少用这种删除pod的命令
kubectl scale --replicas=5 deploy ngx-dep // 扩容这个deployment到5个
kubectl get pod -l app=nginx// 查找label为app=nginx,的pod
kubectl get pod -l 'app in (ngx, nginx, ngx-dep)' // 查找label的app为ngx, nginx, ngx-dep,的pod
kubectl top pod -n kube-system // 查看kube-system命名空间下pod的资源使用情况(内存、cpu)
kubectl top node // 查看各节点的cpu和内存使用情况
【minikube学习】
minikube start --image-mirror-country=cn // 这样是不是也行?我没试过,后面可以试试,说是官网已经给中国用户做了镜像替换
列出所有可用的插件,确认 metrics-server 在列表中
minikube addons list
启用 metrics-server 插件
minikube addons enable metrics-server
kubectl get deploy/metrics-server -n kube-system -o yaml // 查询deployment的yaml,因为经常k8s的东西拉不下来,得看看这个deployment到底用的啥镜像,然后找替代
例如metrics-server,可以用阿里云的仓库pull下来
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2
minikube image load registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2
kubectl set image deployment/metrics-server metrics-server=registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.2 -n kube-system
命令结构
kubectl set image
修改一个 Pod 模板(Deployment、DaemonSet、StatefulSet 等)的镜像字段。
deployment/metrics-server
目标对象:这里指 kube-system 命名空间里的 Deployment,名字叫 metrics-server。
metrics-server=...
这是关键部分:
左边的 metrics-server 👉 指的是 Deployment 里 Pod 模板中某个容器的名字。
一个 Pod 可以有多个容器,每个容器在 spec 里都有个 name 字段,比如:
containers:
- name: metrics-server
image: registry.k8s.io/metrics-server/metrics-server:v0.7.2
这里的 name: metrics-server 就是你命令里的左边。
右边的 registry.cn-hangzhou.aliyuncs.com/...:v0.7.2 👉 指的是你要替换成的新镜像。
-n kube-system
指定命名空间(默认 metrics-server 在 kube-system 里)。
然后做滚动更新:
kubectl rollout status deployment/metrics-server -n kube-system
【minikube安装dashboard】
先连接vpn,然后用docker desktop pull下来这两个镜像
kubernetesui/dashboard:latest
kubernetesui/dashboard-metrics-scraper:latest
然后
minikube image load kubernetesui/dashboard:latest
minikube image load kubernetesui/dashboard-metrics-scraper:latest
设置使用本地镜像
kubectl set image deployment/kubernetes-dashboard kubernetes-dashboard=kubernetesui/dashboard:latest -n kubernetes-dashboard
kubectl set image deployment/dashboard-metrics-scraper dashboard-metrics-scraper=kubernetesui/dashboard-metrics-scraper:latest -n kubernetes-dashboard
等待滚动更新完成
kubectl rollout status deployment/kubernetes-dashboard -n kubernetes-dashboard
kubectl rollout status deployment/dashboard-metrics-scraper -n kubernetes-dashboard
kubectl get pods --all-namespaces 发现启动失败的两个pods都已启动
参考:https://www.hangge.com/blog/cache/detail_3096.html
【minikube报错】
X 因 PR_HYPERV_MODULE_NOT_INSTALLED 错误而退出:Failed to start host: creating host: create: precreate: Hyper-V PowerShell Module is not available
* 建议:运行:'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All -All'
* 文档:https://www.altaro.com/hyper-v/install-hyper-v-powershell-module/
* 相关问题:https://github.com/kubernetes/minikube/issues/9040
用powershell运行:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All -All
! C:\Program Files\Docker\Docker\resources\bin\kubectl.exe 的版本为 1.30.2,可能与 Kubernetes 1.32.0 不兼容。
- 想要使用 kubectl v1.32.0 吗?尝试使用 'minikube kubectl -- get pods -A' 命令
【docker desktop报错】
bcdedit /enum | findstr -i hypervisorlaunchtype+
bcdedit /set hypervisorlaunchtype Auto