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

相关推荐
集3047 小时前
C++多线程学习笔记
c++·笔记·学习
知南x7 小时前
【正点原子STM32MP157 可信任固件TF-A学习篇】(2) STM32MP1 中的 TF-A
stm32·嵌入式硬件·学习·stm32mp157
YJlio7 小时前
Active Directory 工具学习笔记(10.0):AdExplorer / AdInsight / AdRestore 导读与场景地图
网络·笔记·学习
子夜江寒7 小时前
Python 学习-Day8-执行其他应用程序
python·学习
赵 XiaoQin7 小时前
【无标题】
docker
●VON8 小时前
从单机应用到分布式调度:基于 HarmonyOS 构建车-空协同任务引擎
学习·华为·harmonyos·openharmony·开源鸿蒙
万变不离其宗_88 小时前
http学习笔记
笔记·学习
盐焗西兰花8 小时前
鸿蒙学习实战之路 - 避免冗余刷新最佳实践
学习·华为·harmonyos
Lynnxiaowen8 小时前
今天我们继续学习Kubernetes内容pod资源对象
运维·学习·容器·kubernetes·云计算
xier_ran9 小时前
关键词解释:对比学习(Contrastive Learning)
人工智能·深度学习·学习·机器学习·对比学习