容器化技术 | 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 参数

相关推荐
狂奔solar42 分钟前
分享个好玩的,在k8s上部署web版macos
前端·macos·kubernetes
mit6.8241 小时前
[Docker#9] 存储卷 | Volume、Bind、Tmpfs | -v/mount | MySQL 灾难恢复 | 问题
linux·运维·docker·容器·架构
qq_167401511 小时前
Docker 组添加用户,设置允许普通用户操作 docker
docker·容器
Z1eaf_complete1 小时前
Docker的基础使用
运维·docker·容器·云计算
Lyqfor1 小时前
云原生学习
java·分布式·学习·阿里云·云原生
李少兄3 小时前
Docker 命令总结:从入门到入土
docker·容器·eureka
想学习java初学者4 小时前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
Smile丶凉轩4 小时前
微服务即时通讯系统的实现(客户端)----(1)
微服务·云原生·架构
南慕小白4 小时前
云原生后端
云原生
微刻时光6 小时前
Docker部署Nginx
运维·nginx·docker·容器·经验