docker内存阀值_docker高级应用之集群与auto scale-阿里云开发者社区

本文介绍了如何使用Python编写的集群通信软件进行Docker集群管理,包括查看节点信息、创建集群、实现Auto Scale功能。通过docker_auto_scale.py程序,根据内存和CPU阀值动态调整容器数量,实现资源的有效利用和高可用性。同时,文章提到了web界面的展示和集群的更新、回滚操作,以及前端通过负载均衡访问后端的方式。
摘要由CSDN通过智能技术生成

之前介绍过docker的单机安装、多主机网络互通、如何半自动化更新与回滚代码,现在在介绍如何进行集群与auto scale。

集群通信软件

这部分功能使用Python语言编写,基于TCP Socket与SSL加密通信。我们来看下效果展示:

查看所有节点信息:

(软件名是cdocker,分为客户端与服务端,服务的名字是cdocker_server.py,客户端名字是cdocker_client.py,感谢@陈李粮帮我起的名字)

上图的返回信息显示当前集群有3个节点(Node)、存放位置与类型(Metadata)、机器唯一标识(Machines_id)、当前宿主机创建容器数量(Container_now_user)以及最大可以使用容器的数量(Container_max_use)。

这个程序中也包含了部分Mesos等功能,可以计算集群里可用资源情况,并显示具体已使用与可最大使用数量。

查看具体节点里容器信息

集群模块还有其他的功能,比如创建集群、创建auto_scale等,今天我就给大家展示web界面,后台实现不再详细介绍。

上图为集群总览界面,包含了当前集群的部分信息。左上角可以创建集群:

我对存放区域设计基本思路是按照服务器的配置来选择类型。具体如下:

界面中auto_scale开始数量与最大数量,以及内存、cpu阀值的设置都很直观,不再赘述。

点击info按钮,可以查看集群项目信息 、实例信息、公网信息等

公网ip与防火墙信息都可以动态的调整。

生效的意思是对新增或者修改后防火墙策略进行生效,主要是放在误操作。

这个3个按钮主要是对集群进行更新、回滚(这个功能还有点瑕疵,所以先不展示)

下面在介绍一下auto scale

主要是通过自研程序docker_auto_scale.py进行动态扩容与缩减容器数量,这个程序是通过获取集群的监控信息以及auto scale设置值与cpu、内存阀值进行综合判断后进行操作。

效果如下

比如运行正常(cpu、内存使用量未超过阀值)

下面修改一下内存阀值

修改前

修改后

点击提交

可以看到内存阀值已经从95%修改为1%,下面是运行auto scale软件情况

可以看到扩容了当前的一倍,从4变为8个了

下面在运行一遍

可以看到从8变为16,翻了一倍

另外auto scale缩减也是一样的效果

这样仅是对后端做的操作,但前端访问肯定是通过ip加url,然后负载到后端real server,我这里是使用程序+etcd+confd+haproxy+keepalived

web访问效果为

url对应的脚本就是获取容器的内网ip。

至于有几个ip里包含this is test update是我自己弄的测试。

目前通过这样的集群与auto scale模式,可以满足动态扩容与缩减,对于资源最大程度使用、高可用、跨机房高可用等都能满足。

本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1687544,如需转载请自行联系原作者

AI实战-仿真交易欺诈行为分类数据集分析预测实例(含10个源代码+419.69 KB完整的数据集) 代码手工整理,无语法错误,可运行。 包括:10个代码,共49.42 KB;数据大小:1个文件共419.69 KB。 使用到的模块: pandas os sklearn.model_selection.train_test_split sklearn.ensemble.RandomForestClassifier sklearn.metrics.classification_report imblearn.over_sampling.SMOTE sklearn.linear_model.LogisticRegression sklearn.metrics.accuracy_score datetime.datetime sklearn.svm.SVC seaborn sklearn.preprocessing.StandardScaler sklearn.preprocessing.OrdinalEncoder sklearn.compose.ColumnTransformer imblearn.pipeline.Pipeline numpy matplotlib.pyplot statsmodels.formula.api sklearn.model_selection.StratifiedKFold sklearn.metrics.roc_auc_score contextlib pickle sklearn.pipeline.Pipeline sklearn.preprocessing.OneHotEncoder sklearn.preprocessing.PowerTransformer torch torch.nn torch.nn.BCELoss torch.optim.Adam warnings scipy.stats.normaltest scipy.stats.chi2_contingency wolta.data_tools.col_types wolta.data_tools.seek_null wolta.data_tools.unique_amounts wolta.feature_tools.list_deletings wolta.data_tools.make_numerics wolta.data_tools.stat_sum wolta.data_tools.corr_analyse collections.Counter wolta.model_tools.compare_models wolta.model_tools.get_best_model sklearn.metrics.confusion_matrix sklearn.metrics.ConfusionMatrixDisplay sklearn.ensemble.GradientBoostingClassifier xgboost sklearn.model_selection.GridSearchCV sklearn.preprocessing.LabelEncoder sklearn.ensemble.StackingClassifier sklearn.metrics.roc_curve plotly.express wordcloud.WordCloud wordcloud.STOPWORDS
AI实战-阿尔茨海默氏病患者的健康信息数据集分析预测实例(含17个源代码+591.06 KB完整的数据集) 代码手工整理,无语法错误,可运行。 包括:17个代码,共143.32 KB;数据大小:1个文件共591.06 KB。 使用到的模块: numpy pandas os seaborn matplotlib.pyplot sklearn.model_selection.train_test_split sklearn.ensemble.RandomForestClassifier sklearn.metrics.accuracy_score sklearn.metrics.confusion_matrix sklearn.metrics.classification_report sklearn.preprocessing.LabelEncoder sklearn.preprocessing.StandardScaler warnings sklearn.svm.SVC mealpy.GA mealpy.Problem sklearn.neural_network.MLPClassifier mealpy.BinaryVar sklearn.exceptions.ConvergenceWarning IPython.display.clear_output sklearn.utils.resample sklearn.compose.ColumnTransformer sklearn.pipeline.Pipeline sklearn.preprocessing.PowerTransformer sklearn.decomposition.PCA sklearn.linear_model.LogisticRegression sklearn.metrics.precision_score sklearn.metrics.recall_score sklearn.metrics.f1_score sklearn.preprocessing.MinMaxScaler sklearn.metrics.ConfusionMatrixDisplay sklearn.model_selection.RepeatedKFold sklearn.model_selection.cross_val_score sklearn.model_selection.RandomizedSearchCV xgboost.XGBClassifier tensorflow pickle plotly.express plotly.subplots.make_subplots plotly.graph_objects sklearn.model_selection.GridSearchCV sklearn.model_selection.cross_validate sklearn.tree.DecisionTreeClassifier yellowbrick.classifier.ClassPredictionError yellowbrick.classifier.ROCAUC yellowbrick.classifier.ConfusionMatrix sklearn.ensemble.GradientBoostingClassifier lightgbm.LGBMClassifier catboost.CatBoostClassifier imblearn.under_sampling.RandomUnderSampler imblearn.over_sampling.RandomOverSampler sklearn.metrics.matthews_corrcoef optuna torch torch.nn torch.optim imblearn.pipeline.Pipeline imblearn.over_sampling.SMOTE sklearn.ensemble.AdaBoostClassifier sklearn.neighbors.KNeighborsClassifier sklearn.discriminant_analysis.LinearDiscriminantAnalysis sklearn.pipeline.make_pipeline collections.Counter sklearn.preprocessing.OneHotEncoder sklearn.model_selection.cross_val_predict sklearn.metrics.precision_recall_curve sklearn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值