企业级运维之云原生与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免密拉取插件常见的问题以及定位方法。

 

 

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
64 0
|
2月前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于Docker和Kubernetes的实践指南
【2月更文挑战第30天】 在当今快速发展的云计算时代,传统的IT运维模式已难以满足业务的敏捷性和稳定性需求。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理工具构建一个高效、可靠的自动化运维体系。文章首先概述了容器化技术和微服务架构的基本概念,随后详细阐述了基于Docker的应用打包、部署流程,以及Kubernetes在自动化部署、扩展和管理容器化应用中的关键作用。最后,文中通过案例分析,展示了如何在实际场景中利用这些技术优化运维流程,提高系统的整体效率和可靠性。
|
4月前
|
Kubernetes 监控 调度
Kubernetes Pod调度:从基础到高级实战技巧
Kubernetes Pod调度:从基础到高级实战技巧
212 0
|
1月前
|
运维 Kubernetes 容器
K8S运维命令必备kubectl命令总结
K8S运维命令必备kubectl命令总结
32 3
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
71 0
|
4月前
|
存储 Kubernetes 监控
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
107 0
|
2天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
|
2天前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
9天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同实践
【5月更文挑战第2天】随着云计算和微服务架构的兴起,自动化运维成为保障系统稳定性与效率的关键。本文将深入探讨如何利用Ansible作为配置管理工具,结合Kubernetes容器编排能力,共同打造一个高效、可靠的自动化运维体系。通过剖析二者的整合策略及具体操作步骤,为读者提供一套提升运维效率、降低人为错误的实用解决方案。
|
12天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同策略
【4月更文挑战第29天】 在当今快速迭代的软件开发环境中,自动化运维成为了确保部署效率和稳定性的关键。本文深入探讨了如何通过Ansible和Kubernetes的集成来实现高效的自动化配置管理与容器编排。文章首先介绍了Ansible与Kubernetes各自的特点及优势,随后详细阐述了它们在自动化运维中的互补作用,并提供了一个实用的集成方案。通过案例分析,验证了该策略在提高部署速度、降低人为错误以及增强系统可靠性方面的有效性。最后,讨论了实施过程中可能遇到的挑战和解决思路。

相关产品

  • 容器服务Kubernetes版