企业级运维之云原生与Kubernetes实战课程 - 第二章第2讲 阿里云容器服务集群应用管理

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本小节主要内容为集群中应用管理,包括如何在控制台进行应用的创建及创建应用过程中详细配置的介绍。

企业级运维之云原生与Kubernetes实战课程

第二章第2讲 阿里云容器服务集群应用管理

 

 

视频地址:https://developer.aliyun.com/learning/course/913/detail/14504

 

摘要:本小节主要内容为集群中应用管理,包括如何在控制台进行应用的创建及创建应用过程中详细配置的介绍。

 

目录

 

  • 控制台使用
  • 详细配置介绍

 

一、控制台使用

 

1.  如何在控制台创建应用

 image.png

 

  • 登录阿里云控制台,点击容器服务,选择集群,选择无状态服务进行应用创建;
  • 设置deployment名称、Pod副本数量、服务类型也可选择配置多个container容器,然后选择镜像、镜像tag、镜像拉取策略、配置容器资源限制、设置初始化容器(init Container)、容器端口(页面设置的端口类似注释功能,不等价于启动了该端口)、健康检查、生命周期、数据卷、日志服务;
  • 点击下一步“高级配置”,可以创建SVCdeployment建立对应关系、路由(通过路由访问后端Pod)、HPA(自动伸缩配置)、节点亲和性、反亲和性、污点、标签、注解等配置,点击完成应用的创建。

 

二、详细配置介绍

 image.png

 

1. 健康检查

 

a.  健康检查以下三种类型:

 

  • 存活检查:检查容器内应用是否运行正常,有三种探测方式,Http请求(对Pod内发起http服务请求,根据返回状态码进行判断服务是否正常)、Tcp连接(四层探测,配置探测端口,通过三次握手进行探测)、命令行(在容器内运行某个脚本,如果返回为0则通过探测,否则探测不通过);
  • 就绪检查:判断应用是否准备完成,检查方式与存活检查类似;
  • 启动探测:检查方式与存活检查类似。

 

b.  存活检查与就绪检查的区别:

 

  • 当应用启动后首先会通过就绪检查,才会将流量通过SVC转发到后端的Pod中,如果就绪检查不通过,容器的IP和端口将不会加到SVCEndpoint中,即流量不会转发到该Pod中;
  • 是否有流量进来与存活检查无关,如果存活检查不通过,会将Pod进行Kill,重启该Pod

 

2.  Pod生命周期

 

a.  设置Pod生命周期参数:

 

  • 启动执行:设置进程的启动参数;
  • 启动后处理:为容器设置启动后的命令,对应程序中postStart字段;
  • 停止前处理:为容器设置预结束命令,对应程序中preStop字段。

 

示例:定义postStartpreStop字段,如:

 

apiVersion: v1

kind: Pod

metadata:

 name: lifecycle-demo

spec:

 containers:

 - name: lifecycle-demo-container

   image: nginx

   lifecycle:

     postStart:

       exec:

command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]

     preStop:

       exec:

command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]

 

在上述配置文件中,你可以看到postStart命令在容器的/usr/share目录下写入文件message。命令preStop负责优雅地终止nginx服务。当因为失效而导致容器终止时,这一处理方式很有用

 

b.  当停止一个应用时,Pod状态是如何变化的?

 image.png

 

  • 如上图,首先Pod处于Running状态,在某一时刻删除或者更新该Pod副本,此时该Podendpoint会从SVC中摘除,新的流量将不会再打到该Pod上,Pod处于terminating状态,节点上kubelet会给Pod内进程发送一个kill信号,应用被杀掉,如果应用上仍有业务在进行,会导致应用不平滑;
  • 如果Pod配置了postStart,设置sleep一段时间保证业务完成后,kubelet再给Pod中的进程发送一个kill信号,这样就保证了业务在退出前可以完成所有请求。

 

3.  数据卷

 

数据卷可以选择本地存储和云存储:

 

  • 本地存储:可以选择挂载配置项(configMap)、保密字典(密钥)、临时目录,如主机目录/tmp目录挂载到容器/tmp目录中;
  • 云存储:可以选择OSSNAS,然后选择容器挂载目录;

 

日志服务可以通过配置日志库和填写容器日志路径配置日志采集。

 

四.本讲小结

 

容器镜像服务以及服务的管理,包括:

 

1.  阿里云容器镜像企业版/默认版,harbor,区别,优劣势。

2.  Configmap/secretConfigmap保存的为明文配置信息,secret保存的为敏感信息。

3.  镜像拉取密钥:创建一个secret,将secret添加到deployment里面的imagePullSecret

4.  Secretpatchserviceaccount实现免密拉取镜像。

5.  ACR免密拉取插件配置,原理,使用场景。

6.  创建deployment,参数:镜像地址,镜像拉取策略,健康检查配置,存活检查/就绪检查的原理以及区别。

7.  preStoppostStart特点以及应用。

8.  SecretACR免密拉取插件常见的问题以及定位方法。

 

 

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
10天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
2月前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
68 0
|
3月前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
3月前
|
边缘计算 运维 Cloud Native
云原生技术的崛起:重新定义软件开发与运维
云原生技术的崛起:重新定义软件开发与运维
|
5月前
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
|
5月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
285 3
|
5月前
|
运维 监控 Cloud Native
云原生时代的运维新范式
在数字化转型的浪潮中,云原生技术成为推动企业IT架构现代化的重要力量。本文将探讨如何在云原生时代下重新定义运维工作,包括自动化部署、微服务治理、容器化管理以及DevOps实践等关键领域,旨在为读者提供一套适应新时代运维需求的新思路和新方法。
|
5月前
|
弹性计算 运维 Cloud Native
云原生时代的运维转型之路
在云计算飞速发展的今天,传统的运维模式已难以满足现代企业的需求。本文旨在探讨如何在云原生时代下进行有效的运维转型,从传统运维到云运维的转变不仅仅是技术的升级,更是思维和方法论的革新。通过实际案例分析,我们将深入了解这一转型过程中可能遇到的挑战与解决策略,以及如何利用云原生技术提高运维效率,保障系统稳定性和安全性,从而为企业带来持续的业务创新和价值增长。
74 6
|
6天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
131 15
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
160 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结

热门文章

最新文章

相关产品

  • 容器服务Kubernetes版