首页 文章 精选 留言 我的

精选列表

搜索[零基础],共10004篇文章
优秀的个人博客,低调大师

零基础攻略!如何使用kubectl和HPA扩展Kubernetes应用程序

现如今,Kubernetes已经完全改变了软件开发方式。Kubernetes作为一个管理容器化工作负载及服务的开源平台,其拥有可移植、可扩展的特性,并促进了声明式配置和自动化,同时它还证明了自己是管理复杂微服务的主要参与者。而Kubernetes之所以能够在业界被广泛采用,究其原因是Kubernetes迎合了以下需求: 企业想要在不断地增长的同时维持低成本 DevOps想要一个可以大规模运行应用程序的稳定平台 开发人员希望有一个可靠并且可复制的流程来编写、测试和debug代码 但是,你是否考虑过如何在使用实际需要的资源的同时获得强大的容器编排平台?最佳资源利用的关键是知道需要扩展什么应用程序以及何时需要扩展应用程序。因此,在本文中,我们将讨论和学习如何扩展Kubernetes容器,并且我们将特别关注两类服务:kubectl和Horizontal Pod Autoscaler(HPA)。 kubectl 在绝大部分情况下和Kubernetes交互是通过一个名为kubectl的命令行工具。kubectl主要用于和Kubernetes API进行通信来创建、更新以及删除在Kubernetes内的工作负载。在下文中,我们将提供一些常见的命令,你可以利用它们开始管理Kubernetes。 大部分常见的kubectl命令都提供了要执行的特定操作或动作,比如创建、删除等。这一方法通常涉及解释描述Kubernetes中的对象(pod、服务、资源等)的文件(YAML或JSON)。这些文件可用于模板以及环境中的持续文件,并且帮助保持Kubernetes对声明式配置的关注。命令行所指定的操作将会传递到API Server,然后根据需要与Kubernetes中的后端服务进行通信。下方的表格可以帮助你安装kubectl: 请注意:随着新版本的发布,适用于Windows的kubectl的最佳版本会有所变化。想要找到目前最合适的二进制文件,请访问以下网址: https://storage.googleapis.com/kubernetes-release/release/stable.txt 并根据需要调整上述URL。 kubectl 句法 kubectl句法如下: kubectl [command] [TYPE] [NAME] [flags] Command:指你想要执行的动作(创建、删除等) Type:指你要针对其执行命令的资源类型(Pod、Service等) Name:资源对象的名称(区分大小写),如果你不指定一个名称,它会获取所有与你命令匹配的资源信息。 Flags:这部分在句法中不是必要的,但是当需要查找指定资源时,十分有用。例如,-namespace可以让你指定一个特定的命名空间,以在其中执行操作。 kubectl操作 以下示例可以帮助你熟悉运行常用的kubectl操作: kubectl apply - Apply or Update a resource from a file or stdin. # Create a service using the definition in example-service.yaml. kubectl apply -f example-service.yaml kubectl get - List one or more resources. # List all pods in plain-text output format. kubectl get pods # List all pods in plain-text output format and include additional information (such as node name). kubectl describe - Display detailed state of one or more resources, including the uninitialized ones by default. # Display the details of the node with name <node-name>. kubectl describe nodes <node-name> kubectl delete - Delete resources either from a file, stdin, or specifying label selectors, names, resource selectors, or resources. # Delete a pod using the type and name specified in the pod.yaml file. kubectl delete -f pod.yaml # Delete all the pods and services that have the label name=<label-name>. kubectl delete pods,services -l name=<label-name> kubectl logs - Print the logs for a container in a pod. # Return a snapshot of the logs from pod <pod-name>. kubectl logs <pod-name> # Start streaming the logs from pod <pod-name>. This is similar to the 'tail -f' Linux command. kubectl logs -f <pod-name> 以上都是kubectl中常用的操作,如果你想了解更多,可以查阅kubectl的官方指南。此外,我们在往期的文章中也有介绍: 你一定会用到的7条kubectl命令 使用Kubectl管理Kubernetes的全解教程 Horizontal Pod Autoscaler(HPA) Pod水平自动伸缩(HPA)是Kubernetes的一个重要功能,它可以让你配置集群以自动伸缩正在运行的服务。HPA实现为一种Kubernetes API资源和controller。资源决定controller的行为,controller会定期调整replication controller或部署中的副本数量,使观察到的平均CPU利用率与用户指定的目标相匹配。 同时,HPA实现为控制回路,其周期由controller manager的–horizontal-pod-autoscaler-sync-period标志控制(默认值为30秒)。 在每个周期期间,controller manager 会根据每个HPA定义中指定的指标来查询资源利用率。Controller manager会从资源指标API(针对per-pod资源指标)或自定义指标API(针对所有其他指标)中获得指标。 针对per-pod资源指标(如CPU),controller会从资源指标API中为HPA定位的每个Pod获取指标。然后,如果设置了目标利用率值,则controller将会把利用率值计算为每个pod中容器的同等资源请求的百分比。如果设置了目标原始值,则直接使用原始指标值。然后,controller将所有目标pod的利用率或原始值(取决于指定的目标类型)取平均值,并产生一个用于伸缩所需副本数量的比率。 针对per-pod自定义指标,controller的功能类似于per-pod资源指标,但它适用于原始值,而非利用率值。 对于对象指标,将会获取单个指标(该指标描述了所讨论的对象),并将其与目标值进行比较,以产生用于伸缩所需副本数量的比率。 HPA controller将会通过两种不同的方式获取指标:direct Heapster access和REST client access。当使用direct Heapster access时,HPA将会通过API server的服务代理子资源直接查询Heapster。请注意,Heapster需要部署在集群上并在kube-system命名空间中运行。 HPA的工作流程包含以下四个步骤,如图所示: 在设置默认30秒间隔期间,HPA会持续检查你所配置的指标值 如果达到指定阈值,则HPA尝试增加pod的数量 HPA主要更新在部署中或replication controller中的副本数量 然后,部署/replication controller将会添加任何额外所需的pod 当你推出HPA时请考虑以下因素: 默认的HPA检查间隔是30秒,这个默认值可以通过controller manager的— horizontal-pod-autoscaler-sync-period标志进行配置。 默认的HPA相关指标容差为10%。 在上一次扩展事件之后,HPA将会等待3分钟,以使指标稳定下来。这一等待事件同样可以通过— horizontal-pod-autoscaler-upscale-delay标志进行配置。 从上一次缩小事件开始,HPA将会等待5分钟,以避免autoscaler抖动。同样可以通过— horizontal-pod-autoscaler-downscale-delay标志进行配置。 与replication controller相比,HPA最适合与部署对象或Pod指标配合使用,不适用于使用直接操作的replication controller的滚动更新。当你进行部署时,需要根据部署对象来管理底层副本集的大小。 当HPA与自定义指标(如Pod指标或对象指标)一起使用时,你需要决定何时进行伸缩。由于Kubernetes支持多种指标,因此你可以同时使用多种指标来决定伸缩的时间。请注意,Kubernetes会依照次序来考虑每个指标。更多示例请查阅: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale 结 论 在本文中,我们讨论了两种扩展Kubernetes应用程序的主要工具,两者都是所有Kubernetes服务的关键组件。我们看到了如何安装并且使用不同的功能,如应用、获取、删除、描述以及kubectl的日志等。同时,我们回顾并了解有关Horizontal Pod Autoscaler的信息,例如它是如何工作的以及它对任意Kubernetes服务的重要性。在扩展微服务应用程序时,kubectl和HPA都是Kubernetes的重要功能。 在上个月发布的Rancher 2.3中,已经集成了HPA功能,可以在Rancher中通过UI使用。目前,Rancher 2.3也已经stable,如果想要更全面地了解Rancher 2.3关注我们下周三晚上的Rancher K8S云课堂吧! 欢迎添加小助手(wx:rancher2),进官方技术群,了解更多Kubernetes使用攻略

优秀的个人博客,低调大师

零基础如何用 15 行 Python 代码搞定网易云热门歌单?

健身、吃饭、敲代码;等车、撸猫、下午茶……若能佐以合适的音乐当“配餐”,总是惬意非常。本文就将带你爬一爬网易云的那些热门歌单! 心情好或心情坏,点一首歌抚慰你受伤或躁动的心灵——下面教你用 15 行代码搞定热门歌单! 本文使用的是 Selenium 模块,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。 采用了 Chrome 浏览器配合 Selenium 工作,本文的 Python 版本是 3.7.2。 准备工作 1. 若你的环境中没有 Selenium 模块,直接使用 pip 安装即可: pip install selenium 2. 打开谷歌浏览器,检查Chrome的版本:在浏览器地址中输入 chrome://settings/help 回车即可看到: 3. 打开 ChromeDriver 的官方网站(https://sites.google.com/a/chromium.org/chromedriver/downloads),寻找与你当前浏览器版本相对应的 ChromeDriver 下载: 4. 选择你自己的操作系统类型进行下载即可: 5. 以 Windows 为例,下载结束后,将 ChromeDriver 放置在 Python 安装目录下的 Scripts 文件夹即可: 准备工作完成,代码写起来吧~ 小编给大家推荐一个学习氛围超好的地方,python交流企鹅裙:【611+530+101】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 迷你爬虫的实现 我们这次的目标是爬取热门歌单,比如网易云音乐中播放量大于 1000万 的歌单信息(歌单名称、链接)。 1. 先来打开网易云的歌单第一页: https://music.163.com/#/discover/playlist/ 2. 使用 Chrome 的开发者工具 <F12> 进行分析: 我们想要拿的信息全在这里: msk,封面 [mask]:有歌单的名称及链接 nb,播放数 [number broadcast]:135万 3. 我们还需要遍历所有的页,使用工具继续分析,找到“下一页”的 URL: 4. 切换至最后一页,拿到最后一页的 URL: 5. 等我们爬取完所有符合的歌单信息后,将其保存在本地; 6.全部工作结束,最后再通过下面的伪代码回顾下整体思路: 7. 爬取的效果如下:

优秀的个人博客,低调大师

Python零基础学习笔记(十)—— 运算符和表达式

知识点: 运算符和表达式 运算符:表示运算的符号 表达式:由变量、常量和运算符组成的式子 算术运算符和算数运算表达式 算术运算符 + - * / % ** // 加 减 乘 除 取模 求幂 取整 算是运算表达式 1 + 1 2*3 a/3 功能:进行相关符号的数学运算,不会改变变量的值 值:相关数据的运算结果 赋值运算符和赋值运算表达式 赋值运算符 = 赋值运算表达式 格式: 变量 = 表达式 功能:计算了等号右侧‘表达式’的值,并赋值给等号左侧的变量 值:赋值结束后变量的值 复合运算符 += a+=b -> a=a+b -= a-=b -> a=a-b *= a*=b -> a=a*b /= a/=b -> a=a/b %= a%=b -> a=a%b **= a**=b -> a=a**b //= a//=b -> a=a//b 练习代码: #算数运算符计算 num1 = 7 num2 = 3 print(num1 + num2) print(num1 - num2) print(num1 * num2) print(num1 / num2) print(num1 % num2) print(num1 ** num2) print(num1 // num2) print("--------") num3 = 2 num4 = num3 +1 print(num4)运算结果: 10 4 21 2.3333333333333335 1 343 2 -------- 3

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册