Refresh k8s docker versions and references

This commit is contained in:
yeasy
2026-04-21 20:57:33 -07:00
parent 318de33fd4
commit 9a06a18f92
26 changed files with 379 additions and 98 deletions
+12 -2
View File
@@ -96,6 +96,16 @@ $ sudo modprobe overlay
$ sudo modprobe br_netfilter
```
#### cgroup v2 要求必须
Kubernetes v1.35 要求节点使用 cgroup v2不再支持 cgroup v1kubelet cgroup v1 节点上会拒绝启动验证节点是否支持 cgroup v2
```bash
$ mount | grep cgroup2
```
如果输出包含 `cgroup2`则系统已支持 cgroup v2对于仍在使用 cgroup v1 的系统如较旧的 RHEL 8需要升级内核或更新系统配置
#### 禁用 swap必须
kubelet 默认要求禁用 swap否则可能导致初始化失败或节点无法加入集群
@@ -147,9 +157,9 @@ $ sudo systemctl daemon-reload
#### master
```bash
$ systemctl enable containerd
$ sudo systemctl enable containerd
$ systemctl start containerd
$ sudo systemctl start containerd
$ sudo kubeadm init \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
@@ -60,6 +60,7 @@ $ sudo mv cri-dockerd/cri-dockerd /usr/local/bin/
$ wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service
$ wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket
$ sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' cri-docker.service
$ sudo mv cri-docker.service cri-docker.socket /etc/systemd/system/
# 启动 cri-dockerd
@@ -113,6 +114,16 @@ $ sudo yum install -y kubelet kubeadm kubectl
### 14.2.4 修改内核的运行参数
#### cgroup v2 要求必须
Kubernetes v1.35 要求节点使用 cgroup v2不再支持 cgroup v1kubelet cgroup v1 节点上会拒绝启动验证节点是否支持 cgroup v2
```bash
$ mount | grep cgroup2
```
如果输出包含 `cgroup2`则系统已支持 cgroup v2对于仍在使用 cgroup v1 的系统如较旧的 RHEL 8需要升级内核或更新系统配置
#### 加载内核模块
```bash
+263 -34
View File
@@ -2,80 +2,309 @@
[kubectl](https://github.com/kubernetes/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。
使用格式有两种
kubectl 的基本用法格式为
```bash
kubectl [flags]
kubectl [command]
kubectl [command] [resource] [name] [flags]
```
其中 `command` 是操作命令 getapplydelete`resource` 是资源类型 poddeploymentservice`name` 是资源名称可选`flags` 是各种选项参数
### 14.8.1 get
显示一个或多个资源
显示一个或多个资源最常用的命令之一用于查询集群中的资源状态
```bash
# 查看所有 Pod
$ kubectl get pods
# 查看指定命名空间中的 Deployment
$ kubectl get deployment -n kube-system
# 查看所有资源
$ kubectl get all
# 使用更详细的输出格式
$ kubectl get pods -o wide
# 输出为 YAML 格式
$ kubectl get pod my-pod -o yaml
# 根据标签选择资源
$ kubectl get pods -l app=nginx
```
### 14.8.2 describe
显示资源详情
显示资源的详细信息包括事件状态配置等用于调试和查看资源的完整信息
### 14.8.3 create
```bash
# 查看特定 Pod 的详情
$ kubectl describe pod my-pod
从文件或标准输入创建资源
# 查看 Node 的详情
$ kubectl describe node node-1
### 14.8.4 update
# 查看 Deployment 的详情
$ kubectl describe deployment nginx-deployment
```
从文件或标准输入更新资源
### 14.8.3 apply
从文件或标准输入应用配置这是声明式资源管理的标准方式可用于创建或更新资源
```bash
# 应用 YAML 文件
$ kubectl apply -f deployment.yaml
# 应用目录中的所有 YAML 文件
$ kubectl apply -f ./manifests/
# 从标准输入应用配置
$ cat deployment.yaml | kubectl apply -f -
```
### 14.8.4 create
从文件或标准输入创建资源 apply 不同create 仅用于创建新资源如果资源已存在会报错
```bash
# 创建资源
$ kubectl create -f pod.yaml
# 从标准输入创建
$ kubectl create -f - < deployment.yaml
```
### 14.8.5 delete
通过文件名准输入资源名或者 label selector 删除资源
删除一个或多个资源支持按名称资源类型等多种方式删除
```bash
# 按名称删除
$ kubectl delete pod my-pod
# 删除整个 Deployment(同时删除其管理的 Pod
$ kubectl delete deployment nginx-deployment
# 按标签删除
$ kubectl delete pods -l app=nginx
# 从文件删除
$ kubectl delete -f deployment.yaml
```
### 14.8.6 logs
输出 pod 一个容器的日志
查看 Pod 中容器的日志用于调试应用和查看容器输出
### 14.8.7 rollout
```bash
# 查看 Pod 的日志
$ kubectl logs my-pod
Deployment 等资源执行滚动更新/回滚
# 查看 Pod 中特定容器的日志
$ kubectl logs my-pod -c container-name
### 14.8.8 exec
# 实时跟踪日志(类似 tail -f)
$ kubectl logs -f my-pod
在容器内部执行命令
# 查看最近 100 行日志
$ kubectl logs my-pod --tail=100
### 14.8.9 port-forward
# 查看 Pod 启动前的日志(适用于已崩溃的容器)
$ kubectl logs my-pod --previous
```
将本地端口转发到 Pod
### 14.8.7 exec
### 14.8.10 proxy
在运行中的容器内部执行命令用于调试排查问题或执行应用内的操作
Kubernetes API server 启动代理服务器
```bash
# 进入容器的交互式 shell
$ kubectl exec -it my-pod -- /bin/sh
### 14.8.11 run
# 在容器中执行命令
$ kubectl exec my-pod -- ls -la /app
在集群中使用指定镜像启动容器
# 在 Pod 中的特定容器执行命令
$ kubectl exec -it my-pod -c container-name -- /bin/bash
```
### 14.8.12 expose
### 14.8.8 port-forward
replication controller service pod 暴露为新的 Kubernetes service
本地端口转发到 Pod 的端口用于本地访问集群内的服务无需暴露 Service
### 14.8.13 label
```bash
# 将本地 8080 端口转发到 Pod 的 80 端口
$ kubectl port-forward pod/my-pod 8080:80
更新资源的 label
# 使用随机本地端口
$ kubectl port-forward pod/my-pod :80
### 14.8.14 config
# 转发到 Service
$ kubectl port-forward svc/my-service 8080:80
```
修改 Kubernetes 配置文件
### 14.8.9 rollout
### 14.8.15 cluster-info
DeploymentDaemonSetStatefulSet 等资源执行滚动更新暂停继续或回滚操作
显示集群信息
```bash
# 查看滚动更新状态
$ kubectl rollout status deployment/nginx-deployment
# 暂停滚动更新
$ kubectl rollout pause deployment/nginx-deployment
# 继续滚动更新
$ kubectl rollout resume deployment/nginx-deployment
# 查看更新历史
$ kubectl rollout history deployment/nginx-deployment
# 回滚到前一个版本
$ kubectl rollout undo deployment/nginx-deployment
# 回滚到特定版本
$ kubectl rollout undo deployment/nginx-deployment --to-revision=2
```
### 14.8.10 label
向资源添加修改或删除标签标签用于组织和选择资源
```bash
# 为 Pod 添加标签
$ kubectl label pod my-pod env=production
# 修改已有标签
$ kubectl label pod my-pod env=staging --overwrite
# 删除标签
$ kubectl label pod my-pod env-
# 为多个资源添加标签
$ kubectl label pods -l app=nginx version=v1
```
### 14.8.11 annotate
向资源添加或修改注解注解用于存储任意元数据不用于资源选择
```bash
# 添加注解
$ kubectl annotate pod my-pod description=”Production pod”
# 修改注解
$ kubectl annotate pod my-pod description=”Staging pod” --overwrite
# 删除注解
$ kubectl annotate pod my-pod description-
```
### 14.8.12 edit
直接编辑 Kubernetes 资源编辑器由 `EDITOR` 环境变量指定
```bash
# 编辑 Pod
$ kubectl edit pod my-pod
# 编辑 Deployment
$ kubectl edit deployment nginx-deployment
```
### 14.8.13 config
管理 kubectl 的配置文件通常位于 `~/.kube/config`
```bash
# 查看当前配置
$ kubectl config view
# 切换上下文
$ kubectl config use-context my-cluster
# 查看所有上下文
$ kubectl config get-contexts
# 设置默认命名空间
$ kubectl config set-context --current --namespace=my-namespace
```
### 14.8.14 cluster-info
显示集群的连接信息和组件状态
```bash
# 显示集群信息
$ kubectl cluster-info
# 显示完整的集群状态(包括所有组件)
$ kubectl get componentstatuses
```
### 14.8.15 version
显示 kubectl 客户端和 Kubernetes API server 的版本信息
```bash
# 显示版本
$ kubectl version
# 仅显示客户端版本
$ kubectl version --client
# 以 JSON 格式输出
$ kubectl version --output=json
```
### 14.8.16 api-versions
/版本 的格式输出服务端支持的 API 版本
列出 API server 支持的所有 API 版本格式为 /版本
### 14.8.17 version
```bash
$ kubectl api-versions
```
输出服务端和客户端的版本信息
### 14.8.17 explain
### 14.8.18 help
解释资源的字段含义用于了解 YAML 配置文件中各字段的作用
显示各个命令的帮助信息
```bash
# 查看 Pod 资源的字段说明
$ kubectl explain pod
# 查看 Pod 下 spec 字段的说明
$ kubectl explain pod.spec
# 查看具体字段的详细说明
$ kubectl explain pod.spec.containers
```
### 14.8.18 auth
检查用户权限用于验证 RBAC 配置
```bash
# 检查当前用户是否有权限执行操作
$ kubectl auth can-i create pods
# 检查特定用户的权限
$ kubectl auth can-i create pods --as=other-user
```
### 14.8.19 help
显示任何命令的帮助信息
```bash
# 显示 kubectl 的一般帮助
$ kubectl help
# 显示特定命令的帮助
$ kubectl get --help
# 显示资源的 API 文档
$ kubectl explain deployment
```