云原生容器Clouder认证:容器应用与集群管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 云原生容器Clouder认证:容器应用与集群管理

云原生容器Clouder认证:容器应用与集群管理

基本概念

Kubernetes中涉及到的关键名词包含以下这些,他们重要但很抽象,建议您先记住这些名词和概念,在本课程中我们将结合后续实际操作步骤为您展开介绍。

  • Pod(容器组):Pod是一个逻辑概念,是一组紧密关联的容器的集合。
  • Controller(控制器):控制器通过控制循环监控集群状态,将当前状态转变为期望状态。控制器包含节点控制器、命名空间控制器、工作负载控制器等多种。
  • Workload(工作负载):工作负载是在 Kubernetes 上运行的应用程序,分为无状态、有状态、任务、定时任务等多种类型。
  • Service(服务):将运行在一个或一组Pod上的应用程序公开为网络服务的方法,是真实应用服务的抽象。
  • PV、PVC:PV是存储卷,是集群内的存储资源,PV独立于Pod的生命周期。PVC是存储卷声明,是资源的使用者。Pod挂载PVC,PVC消耗PV资源。
  • Namespace(命名空间):命名空间为容器集群提供虚拟的隔离作用。
  • etcd:etcd是一个分布式、一致且高可用的键值存储系统,通常被用作Kubernetes所有集群数据的后台数据库。

容器集群的管理节点

  • API Server:Kubernetes集群的统一服务入口,负责资源的认证、鉴权以及CRUD(增删改查)等操作,提供Restful API接口,提供其他模块之间数据交互和通信的枢纽,API Server接收客户端发起的控制资源对象的API请求,将期望状态存储到etcd中。
  • Controller Manager:所有资源对象的自动化控制中心,完成对集群内Node、Pod、Service等资源状态的管理,确保集群始终处于预期的工作状态;
  • Scheduler:Pod资源对象的调度服务。将待调度的 Pod 按照一定的调度算法和策略绑定到合适的Node节点上,并将绑定信息写入到 etcd 中;
  • etcd:是一个分布式的存储系统,所有Kubernetes资源对象的数据,都放置在 etcd 中,etcd 本身是一个高可用系统。

这里的工作负载就对应前面Kubernetes中工作负载 Workload的概念。工作负载通常有如下几种类型:

  • 无状态(Deployment):表示对Kubernetes集群的一次更新操作,用于运行完全独立、功能相同应用的场景。
  • 有状态(StatefulSet):支持应用部署、扩容、滚动升级时有序进行。如使用有状态来管理使用了持久存储的应用。
  • 任务(Job):它创建出来的Pod只要完成任务就立即退出,用于执行一次性任务。可以使用Job以并行的方式运行多个 Pod。
  • 定时任务(CronJob):它创建的Pod会周期性的执行,用于执行周期性任务。
  • 自定义资源(Custom Resource Definitions,CRD):可以通过CRD添加第三方工作负载资源。

工作节点是Kubernetes的工作负载节点,主要包含三个组件:kubelet、kube-proxy、Container Runtime。

  • kubelet:负责管理节点上容器的创建、删除、启停等任务,与管理节点通信。
  • kube-proxy:负责Kubernetes服务的通信及负载均衡服务。
  • Container Runtime:负责容器的基础管理服务,接收kubelet组件的指令。

实验过程

https://nasnext.console.aliyun.com/overview

NAS挂载点配置参数如下:

  • 挂载点类型:专有网络
  • VPC网络:clouder_attestation(10.0.0.0/8)
  • 交换机:K8S-02(10.0.1.0/24)
  • 权限组:VPC默认权限组(全部允许)

【操作注意】在文件系统列表页面如果看不到目标NAS资源,请注意页面左上方地域是否选择了华东1(杭州)。

创建ACK Serverless集群

https://cs.console.aliyun.com/
  • (顶部页签)集群版本:ACK Serverless集群(请注意不要选错!)
  • 集群名称:clouder-attestation
  • 集群规格:基础版
  • 地域:华东1(杭州)
  • 版本:1.22.15-aliyun.1
  • 专有网络:使用已有 - clouder_attestation
  • 虚拟交换机:勾选 K8S-01,K8S-02
  • 配置SNAT:勾选 为专有网络配置SNAT
  • API Server访问:默认 标准型I(slb.s2.small),勾选 使用EIP暴露API Server
  • 安全组:自动创建普通安全组
  • 其余均使用默认参数

通过镜像在集群中快速部署容器应用

依次定义存储卷如下:

  • 类型:NAS
  • 名称:wordpress-pv
  • 存储驱动:CSI
  • 总量:20Gi
  • 访问模式:ReadWriteMany
  • 选择挂载点:下拉框选择Clouder_Nas即可(之前步骤中已经创建的NAS挂载点)
  • 单击显示高级设置,在子目录后填入:/share/data
  • 版本:3

【操作注意】创建PV时一定要选择NAS的子目录,wordpress镜像会chown修改目录权限、属主和属组,而NAS的根目录/不允许修改权限、属主和属组,不指定子目录的话Pod会启动报错。

依次定义存储声明如下:

  • 类型:NAS
  • 名称:wordpress-pvc
  • 分配模式:已有存储卷;点击选择已有存储卷,选择 “wordpress-pv,20Gi”
  • 总量:20Gi

二、控制台进入创建应用页面

三、配置应用基本信息

1、配置应用基本信息如下:

  • 命名空间(页面顶部):default

  • 应用名称:wordpress

  • 副本数量:5
  • 类型:无状态(Deployment)

容器配置

1、已经提前准备好了wordpress容器应用镜像,保存在ACR镜像仓库中。点击镜像名称后的填写框,填入镜像仓库地址:

registry.cn-hangzhou.aliyuncs.com/wordpress_clouder/clouder-attestation-wordpress

2、点击镜像Tag后的选择镜像Tag按钮,选择标签V1,点击确定按钮。

registry.cn-hangzhou.aliyuncs.com/wordpress_clouder/clouder-attestation-wordpress

3、点击镜像拉取策略下拉按钮,选择优先使用本地镜像(IfNotPresent),所需资源后下拉框选择 CPU:1Core,内存:2GB

4、在端口设置中指定容器端口如下:

  • 名称:tcp-80
  • 容器端口:80
  • 协议:TCP

5、下拉页面到最下方数据卷部分,设置存储声明(PVC)。

注意:在选择镜像tag后,此处可能会自动增加一个临时目录类型的本地存储,因为我们需要持久化存储数据,所以此处将其删除。如果没有出现本地存储可以忽略,直接进行下一步。

设置存储声明(PVC),点击增加云存储声明,填写名称和容器路径。

填写信息如下:

  • 存储卷类型:云存储
  • 名称:wordpress-pvc
  • 挂载源:wordpress-pvc
  • 容器路径:/var/www/html

五、配置容器访问

【说明】要使应用被外界访问,我们可以创建服务(Service)为一组具有相同功能的容器应用提供一个统一的入口地址,并且可以将请求负载分发到后端的各个容器上。

1、在访问设置框里点击服务(Service)后的创建按钮,设置信息如下:

  • 名称:wordpress-svc
  • 类型:负载均衡,公网访问,新建SLB(简约型I slb.s1.small)
  • 外部流量策略:Cluster
  • 端口映射:
    • 名称:tcp-80(注意tcp要用英文字母小写)
    • 服务端口:80
    • 容器端口:80
    • 协议:TCP

点击创建,完成服务Service创建。

六、生成容器

1、点击右下角创建按钮部署应用,等待创建显示成功后点击查看应用详情。待容器组状态都为 Running 时创建成功。

获取RDS for Mysql相关信息

https://rdsnext.console.aliyun.com/

创建信息如下:

  • 数据库账号:wpadmin
  • 账号类型:普通账号
  • 新密码:Admin@123
  • 确认密码:Admin@123

点击确定,完成数据库账号创建。

点击 数据库管理,点击 创建数据库 按钮,在弹框页面依次填入名称和字符集UTF8,选择授权账号为上一步新建的账号,点击创建按钮进行创建。

创建信息如下:

  • 数据库名称:wordpress
  • 支持字符集:utf8
  • 授权账号:下拉框选择wpadmin

点击创建。

rm-bp1w819qa4v6lh7bd.mysql.rds.aliyuncs.com

rm-bp1sd6q503e0yk8wm.mysql.rds.aliyuncs.com

三、配置初始化页面

1、回到wordpress配置页面,将上一步中创建的数据库名称、账号密码、连接地址一次填入wordpress初始化页面,点击提交等待初始化。

  • Database Name:wordpress
  • Username:wpadmin
  • Password:Admin@123
  • DatabaseHost:上一步中获取的数据库连接内网地址

2、在弹出欢迎页上配置相关信息,点击Install Wordpress。

相关信息配置如下:

  • Site Title:clouder_attestation
  • Username:wpadmin
  • Password:Admin@123
  • Confirm Password:勾选
  • Your Email:123@123.com

3、配置完成后,点击Install Wordpress需等待片刻,回弹出Success页面,点击该页面Log In。

4、输入账号密码后进入如下控制台即部署成功

  • 账号:wpadmin
    • 密码:Admin@123
  1. 在集群中查看和管理应用

1、在远程桌面浏览器输入以下地址可以访问ACK Serverless集群的控制台。

https://cs.console.aliyun.com/

一、释放Prometheus监控大盘

在控制台最上方搜索框搜索 Prometheus,点击 可观测监控Prometheus版;或者在远程桌面浏览器中输入以下地址,进入Prometheus控制台。

https://prometheus.console.aliyun.com/

在左侧导航栏监控列表页面,找到对应实例名称后的卸载按钮进行卸载。

二、释放ACK Serverless集群

1、在实验远程桌面浏览器输入以下地址访问ACK Serverless集群的控制台。

https://cs.console.aliyun.com/

2、在左侧导航栏点击 集群,找到对应集群名称后的更多按钮,点击删除。

3、在弹出框勾选最下方三个选项,然后点击确定按钮。

ACK Serverless资源删除需要耗时 3~5 分钟,出现如下界面代表资源删除完成,请务必等资源删除完成后再结束实验。

相关文章
|
1天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
16 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
13天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
13天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
23天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
30 5
|
23天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
53 4
|
25天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
25天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
51 1
|
25天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
72 0
|
20天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
18天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。

热门文章

最新文章