k8s学习 - 命令记录

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

相关推荐
岁岁岁平安4 小时前
python基本数据类型、字典、 集合、条件与循环控制、函数(3)
python·学习·集合·函数·字典·python3
做运维的阿瑞5 小时前
Kubernetes 存储核心理论:深入理解 PVC 静态迁移与动态扩容
运维·容器·kubernetes
小任今晚几点睡5 小时前
Docker 完整指南:从入门到企业实战
运维·docker·容器
无妄无望5 小时前
docker学习 (3)网络与防火墙
网络·学习·docker
●VON5 小时前
重生之我在大学自学鸿蒙开发第七天-《AI语音朗读》
学习·华为·云原生·架构·harmonyos
追梦者1236 小时前
k8s项目实战篇 kubesphere安装
云原生·容器·kubernetes
-L77 小时前
【Kubernetes】常见面试题汇总(二十五)
云原生·容器·kubernetes
程序员东岸7 小时前
避坑修链表:从顺序表到单链表的那点事儿(含可跑示例与小项目串联)
数据结构·笔记·学习·程序人生·链表
future14127 小时前
C++ 学习日记
开发语言·c++·学习