容器化技术 | CKA | K8s 分栏导航页

1. Dokcer 基础相关

2. CKA 相关学习

CKA (Certified Kubernetes Administrator)是由 Cloud Native Computing Foundation(CNCF )提供的一项认证考试,旨在验证个人在 Kubernetes 群集管理方面的技能和知识。通过考试取得 CKA 认证可以证明个人具备独立管理 Kubernetes 环境的能力。

CKA 考试的主要内容包括但不限于以下几个方面:

  • 集群架构和安装: 理解 Kubernetes 的架构和组件,并能够安装和配置 Kubernetes 群集。

  • 应用工作负载: 管理容器化应用程序的部署、扩展和更新,以及配置应用程序的资源限制和调度规则。

  • 集群维护: 实施备份和恢复策略、监控和故障排除 Kubernetes 群集,并进行安全审计和更新管理。

  • 网络: 配置和管理 Kubernetes 网络、服务和负载均衡,确保网络的可靠性和安全性。

  • 存储: 配置持久存储和卷,以及管理存储资源和存储类别。

  • 安全: 管理 Kubernetes 集群的安全设置,包括身份验证、授权、网络安全和安全策略。

分数占比: 存储(Storage)10%、 故障排除(Troubleshooting)30%、 工作负载和调度(Workloads & Scheduling)15%、 集群架构、安装和配置(Cluster Architecture, Installation & Configuration)25%、服务和网络(Services & Networking)20%

1. 权限控制 RBAC 4分

RBAC( 基于角色的访问控制)主要用于向指定用户或用户组的权限管理,主要考点是理解和操作 Kubernetes 中的 RBAC 和命名空间,以及如何创建、绑定和限制资源的权限。

解题思路

进入题目指定集群 ------> 创建集群作用域并赋予权限 ------> 创建身份验证令牌 ------> 将作用域绑定在身份令牌上

bash 复制代码
# ClusterRole 相关操作
$ kubectl  create / get / describe / delete clusterrole(s) <clusterrole-name> 

# 考试用参数
 -  --verb # 用于指定具体的操作权限
 -  --resource # 限制对特定资源的操作权限

# ServiceAccount 相关操作
$ kubectl create / get / describe serviceaccount(s) --namespace=<namespace>

# 考试用参数
 - -n	# 用于指定 Namespace
 - --clusterrole	# 指定要绑定的 ClusterRole 的名称
 - --serviceaccount		# 用于指定要绑定的 ServiceAccount 的名称

2. 扩展 Deployment 副本数量 4分

主要考点 : Deployment

Deployment 是用于定义和管理 Pod 的控制器对象,主要在于使用 Kubernetes 中的 Deployment 对象来进行扩展,并确保扩展后的 Pod 数量达到要求。

解题思路

进入题目指定集群 ------> 查看当前部署副本数量 ------> 扩展

bash 复制代码
# Deployment 相关操作
$ kubectl describe / get / scale / delete deployment(s) <deployment-name>

# 考试用参数
 - --replicas	# 用于设置副本数量

3. 配置网络策略 NetworkPolicy 7分

主要考点 : NetworkPolicy

NetworkPolicy 用于定义和管理网络访问策略,通过配置策略可以定义规则以限制进出 Pod 的网络流量。

解题思路

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: networking.k8s.io/v1	# 指定使用的 Kubernetes API 版本
kind: NetworkPolicy		# 声明配置为 NetworkPolicy 资源
metadata:		# 元数据  用于定义 NetworkPolicy 的名称和命名空间
  name: test-network-policy
  namespace: default
spec:		# 定义规则与策略
  podSelector:		# 选择应用 NetworkPolicy 的目标 Pod
    matchLabels:		# 匹配标签
      role: db
  policyTypes:		# 策略类型
  - Ingress		# 允许入站流量
  - Egress		# 允许出站流量
  ingress:		# 入站规则
  - from:		# 允许流量来源
    - ipBlock:		# 允许来自 IP 段的流量
        cidr: 172.17.0.0/16
        except:		# 排除不允许的 IP 段
        - 172.17.1.0/24
    - namespaceSelector:		# 允许来自特定命名空间的流量
        matchLabels:
          project: myproject
    - podSelector:		# 允许来自特定标签的 Pod
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:		# 出站规则,允许从 Pod 发出的流量
  - to:		# 指定允许流量去往的目标
    - ipBlock:		# 指定允许去往的 IP 段
        cidr: 10.0.0.0/24
    ports:		# 指定允许的端口和协议
    - protocol: TCP
      port: 5978

4. 查看 Pod 的 CPU 5分

主要考点 : Pod

在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

解题思路

进入题目指定集群 ------> 根据题目要求排序显示 ------> 将查询结果写入指定文件

bash 复制代码
# Pod 相关操作
$ kubectl get / describe / delete / top pod(s) <pod-name>

5. 创建 Ingress 7分

主要考点 : Ingress

Ingress 是一种资源对象,用于管理外部到 Kubernetes 集群内服务的访问。

解题思路

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: networking.k8s.io/v1		# 指定 Kubernetes 中使用的 API 版本
kind: Ingress		# 指定对象的类型
metadata:	# 包含有关对象的元数据信息
  name: minimal-ingress
  annotations:		# 配置 Nginx Ingress 控制器的重写目标
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:		# 指定了 Ingress 对象的规范,即其配置
  ingressClassName: nginx-example 		# 指定要使用的 Ingress 控制器的类别或类型
  rules:		# 定义路由规则
  - http:
      paths:		# 定义了针对特定路径的路由规则列表
      - path: /testpath
        pathType: Prefix		# 指定路径的类型  "Prefix"(前缀匹配)  "Exact"(精确匹配)
        backend:		# 指定后端服务
          service:
            name: test
            port:
              number: 80

6. 暴露服务 Service 7分

主要考点 : Deployments

Deployments 是一种资源对象,用于定义和管理容器化应用程序的部署过程。它提供了一种声明式的方式来定义、创建、更新和管理应用程序的部署。

解题思路

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: apps/v1 		# 制定 Kubernetes API 的版本
kind: Deployment		# 指定对象的类型
metadata:		# 元数据部分
  name: nginx-deployment
  labels:		# 指定 Deployments 对象的标签
    app: nginx
spec:		# 指定 Deployments 的规范部分
  replicas: 3		# 指定要创建的 Pod 的副本数量
  selector:		# 指定用于选择要控制的 Pod 的标签选择器
    matchLabels:		# 匹配 Pod 标签的规则
      app: nginx
  template:		# 指定要创建的 Pod 的模板数据
    metadata:
      labels:
        app: nginx
    spec:
      containers:		# 指定容器的配置信息
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

7. 调度 Pod 到指定节点 4分

主要考点 : Pod

在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

解题思路

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

8. 查看可用节点数量 4分

主要考点 : Pod

在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

解题思路

进入题目指定集群 ------> 根据题目要求筛选显示 ------> 将查询结果写入指定文件

bash 复制代码
# Pod 相关操作
$ kubectl get / describe / delete / top pod(s) <pod-name>

9. 创建多容器的 Pod 4分

主要考点 : Pod

在 Kubernetes 中,Pod 是最小的部署单元,它是一个或多个容器的组合,共享网络命名空间、IP地址和存储卷。Pod 通常被用来组合具有关联功能的容器,比如一个前端应用和一个后端应用,它们可以放在同一个 Pod 中,共享资源和通信。

解题思路

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

10. 创建 PV 4分

主要考点 : PersistentVolume

在 Kubernetes 中,PersistentVolume(持久卷)是一种资源对象,用于抽象底层存储的细节,提供了一种统一的方式来管理持久化存储,并使存储资源可以被 Pod 访问。

解题思路
bash 复制代码
# PV 相关操作命令
$ kubectl get / describe / delete 

进入题目指定集群 ------> 官网复制默认配置 ------> 根据题目要求修改配置 ------> 执行该配置文件

默认 yaml 如下

yaml 复制代码
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:		# 指定持久卷的容量
    storage: 5Gi		# 指定存储容量大小
  volumeMode: Filesystem	# 指定持久卷的卷模式
  accessModes:		# 指定持久卷的访问模式
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle		# 指定持久卷的回收策略
  storageClassName: slow		# 指定持久卷的存储类名称
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:		# 指定 NFS 类型的持久卷的详细信息
    path: /tmp
    server: 172.17.0.2

11. 创建 PVC 7%

主要考点 : PersistentVolumeClaim

PersistentVolumeClaim 是 Kubernetes 中的一种资源对象,用于请求持久化存储资源。当应用程序需要使用持久化存储时,可以创建一个 PersistentVolumeClaim,该声明描述了对存储的需求,比如存储大小和访问模式等。

解题思路
bash 复制代码
# PV 相关操作命令
$ kubectl get / describe / delete 

进入题目指定集群 ------> 官网复制默认配置并根据题目要求修改配置参数 ------> 创建 pod 节点并将 pvc 赋予到 pod 节点上 ------> 使用 record 参数按题目要求修改 pvc 参数

相关推荐
栗子~~11 分钟前
Milvus docker-compose 部署
docker·容器·milvus
没有名字的小羊2 小时前
2.安装Docker
运维·docker·容器
xiezhr2 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀9 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
被困者10 天前
Linux部署Sonic前后端(详细版)(腾讯云)
spring cloud·云原生·eureka
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器
Q_w774210 天前
基于 Docker 的服务部署探索(Day 2)
运维·docker·容器
white.tie10 天前
docker方式启动Jenkins
docker·容器·jenkins