kubectl练习

本文详细介绍了kubectl工具的各种功能,包括配置多个kubeconfig、管理上下文、操作资源如创建、查看、更新、删除,以及与Pod、Deployment、Service和节点的交互,还涵盖了日志监控和节点管理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kubectl上下文和配置

# 显示合并的 kubeconfig 配置

# 同时使用多个 kubeconfig 文件并查看合并的配置
# 获取 e2e 用户的密码
# 显示第一个用户
# 获取用户列表
# 显示上下文列表
# 展示当前所处的上下文
# 设置默认的上下文为 my-cluster-name
# 在 kubeconfig 中设置集群条目

# 在 kubeconfig 中配置代理服务器的 URL,以用于该客户端的请求


# 添加新的用户配置到 kubeconf 中,使用 basic auth 进行身份认证


# 在指定上下文中持久性地保存名字空间,供所有后续 kubectl 命令使用


# 使用特定的用户名和名字空间设置上下文
# 删除用户 foo

# 设置或显示 context / namespace 的短别名
# (仅适用于 bash 和 bash 兼容的 shell,在使用 kn 设置命名空间之前要先设置 current-context)

创建对象

查看和查找资源

更新资源

更新部分资源

编辑资源

扩缩资源

# 将名为 'foo' 的副本集扩缩到 3 副本
# 将在 "foo.yaml" 中的特定资源扩缩到 3 个副本
# 如果名为 mysql 的 Deployment 的副本当前是 2,那么将它扩缩到 3
# 扩缩多个副本控制器

删除资源

与运行的pod进行交互

# 获取 Pod 日志(标准输出)
# 获取含 name=myLabel 标签的 Pod 的日志(标准输出)
# 获取上个容器实例的 Pod 日志(标准输出)
# 获取 Pod 容器的日志(标准输出, 多容器场景)
# 获取含 name=myLabel 标签的 Pod 容器日志(标准输出, 多容器场景)
# 获取 Pod 中某容器的上个实例的日志(标准输出, 多容器场景)
# 流式输出 Pod 的日志(标准输出)
# 流式输出 Pod 容器的日志(标准输出, 多容器场景)
# 流式输出含 name=myLabel 标签的 Pod 的所有日志(标准输出)
# 以交互式 Shell 运行 Pod
# 在 “mynamespace” 命名空间中运行单个 nginx Pod
# 为运行 nginx Pod 生成规约并将其写入到名为 pod.yaml 的文件
# 挂接到一个运行的容器中
# 在本地计算机上侦听端口 5000 并转发到 my-pod 上的端口 6000
# 在已有的 Pod 中运行命令(单容器场景)
# 使用交互 shell 访问正在运行的 Pod (一个容器场景)
# 在已有的 Pod 中运行命令(多容器场景)
# 显示给定 Pod 和其中容器的监控数据
# 显示给定 Pod 的指标并且按照 'cpu' 或者 'memory' 排序

容器中复制文件和目录

与deployments和services进行交互

与节点和集群进行交互

# 标记 my-node 节点为不可调度
# 对 my-node 节点进行清空操作,为节点维护做准备
# 标记 my-node 节点为可以调度
# 显示给定节点的度量值
# 显示主控节点和服务的地址
# 将当前集群状态转储到标准输出
# 将当前集群状态输出到 /path/to/cluster-state
# 查看当前节点上存在的现有污点
# 如果已存在具有指定键和效果的污点,则替换其值为指定值

kubectl日志输出

CKA

1

监控名为foobar的Pod的日志,并过滤出具有ubable-access-website信息的行
然后写入到/opt/KUTR00101/foobar
kubectl logs foobar | grep ubable-access-website > /opt/KUTR00101/foobar

2

找出具有name=cpu-user的Pod,并过滤出使用cpu最高的pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt 文件里
kubectl top -A pod -l name=cpu-user
echo >> /opt/KUTR00401/KUTR00401.txt

3

扩展名字为loadbalancer的deployment的副本数为6
kubectl scale --replices=6 deployment loadbancer

4

检查集群中有多少节点为 Ready 状态,并且去除包含 NoSchedule 污点的节点。之后将数字
写到/opt/KUSC00402/kusc00402.txt
kubectl get node | grep -i ready
kubectl describe node | grep taint | grep NoSchedule
echo x > /opt/KUSC00402/kusc00402.txt

5

将 ek8s-node-1 节点设置为不可用,然后重新调度该节点上的所有 Pod
kubectl cordon ek8s-node-1
kubectl drain pod --delete-emptydir-data=true --ignore-daemonsets=true

### 关于 Kubernetes练习教程和资源 对于希望深入学习并实践 Kubernetes 技能的人来说,有许多优质的在线资源可供利用。这些资源不仅涵盖了理论知识,还提供了实际操作的机会。 #### 官方文档与培训材料 官方 Kubernetes 文档是一个非常全面的学习起点,其中包含了从安装配置到高级特性的详尽指南[^1]。通过阅读官方文档中的案例研究部分,可以了解如何在生产环境中部署应用和服务网格等内容。此外,CNCF(云原生计算基金会)也提供了一系列认证课程,包括 CKAD (Certified Kubernetes Application Developer) 和 CKA (Certified Kubernetes Administrator),这些都是提升个人技能的有效途径。 #### 实践平台 为了更好地掌握 Kubernetes 的使用方法,建议尝试一些互动式的实验环境: - **Play with Kubernetes**: 这个网站允许用户在一个基于浏览器的界面里创建临时的 K8s 集群来进行各种试验。 - **Katacoda Scenarios**: 提供了多个针对不同主题设计的情景模拟任务,帮助新手逐步熟悉命令行工具以及核心概念。 #### 社区贡献项目 参与开源社区也是提高技术水平的好办法之一。GitHub 上有很多活跃度高的 Kubernetes 相关仓库等待着更多开发者加入进来解决问题、改进功能或是编写新的插件等。 ```bash # 使用 kubectl 命令来获取当前上下文中所有命名空间下的 pod 列表 kubectl get pods --all-namespaces ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值