【CKA 2024】CKA 考前自学 (六)

实战练习

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

请重新配置现有的 deployment front-end 以及添加名为 http 的端口规范来公开现有容器 nginx 的端口 80/tcp。

创建一个名为 front-end-svc 的新 service,以公开容器端口 http。

配置此 service,以通过各个 Pod 所在的节点上的 NodePort 来公开他们。


理论学习

Kubernetes Deployments
在 Kubernetes 中,Deployments 是一种资源对象,用于定义和管理容器化应用程序的部署过程,

  • 容器化应用的声明式定义:使用 Deployments ,可以声明性地定义应用程序的部署配置,包括容器镜像、副本数量、升级策略等信息,而不需要手动操作每个容器。
  • 自动化应用部署和升级: Deployments 允许用户指定应用程序的副本数量,并负责将制定数量的 Pod 部署到 Kubernetes 集群中。它还提供了自动化的滚动更新功能,允许用户在不中断服务的情况下对应用程序进行升级。
  • 滚动更新策略:可以通过 Deployments 对象定义滚动更新策略,包括最大不可用实例数、最大搜索时间等参数,从而控制升级过程中的服务稳定性和可用性。
  • 健康检查和自愈能力:Deployments 支持定义健康检查机制,以及自动重启失败的 Pod,从而提高应用程序的可靠性和稳定性。
  • 回滚操作:如果升级失败或引入了严重的 bug,Deployments 允许用户通过简单的命令或 API 调用进行快速回滚操作,将应用程序恢复到先前的稳定状态。

下面是一个 Deployment 示例:

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

操作步骤

  1. (标准步骤) 进入题目指定集群
$ kubectl config use-context k8s
  1. 检查 Deployments 信息 记录 SELECTOR 值
$ kubectl get deployment front-end -o wide

在这里插入图片描述
3. 编辑 front-end

$ kubectl edit deployment front-end

在这里插入图片描述

spec:
  containers:
      - image: vicuu/nginx:hello
        imagePullPolicy: IfNotPresent
        name: nginx            # 找到该位置在下面添加一下6行内容
        ports:		
        - containerPort: 80
          name: http
          protocol: TCP
        selector:
          app: front-end
  1. 暴露对应端口
$ kubectl expose deployment front-end --type=NodePort --port=80 --target-port=80 --name=front-end-svc

在这里插入图片描述

检查命令

$ kubectl get svc -o wide
$ curl 10.104.200.158:80

在这里插入图片描述

参考链接:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/

请添加图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

也言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值