当系统出现大量TIME_WAIT状态的连接,如何修改内核参数来优化? 当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_syncookies = 1 表示。net.ipv4.tcp_tw_recycle = 1 表示。net.ipv4.tcp_tw_reuse = 1 表示。然后执行一下命令让参数生效。,默认为0,表示关闭。
【7】Kubernetes数据存储 数据存储在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。Volume的生命容器不与Pod中单个容器的生命
【6】kubernetes service 资源 Service详解Service介绍在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。Service在很多情况下只是一个概念,真正起作用的其实是kube-proxy服务进
【5】Kubernetes pod控制器 Pod控制器详解Pod控制器介绍Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建什么是Pod控制器Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每
【4】Kubernetes pod资源 容器与pod资源对象为什么Kubernetes要引入pod的概念,而不直接操作Docker容器首先我们要明确一个概念,Kubernetes并不是只支持Docker这一个容器运行时,通过我的另一篇文章什么是Kubernetes的CRI-容器运行时接口介绍的内容,我们知道Kubernetes通过CRI这个抽象层,支持除Docker之外的其他容器运行时,比如rkt甚至支持客户自定义容器运行时。第一个原因:借助CRI这个抽象层,使得Kubernetes不依赖于底层某一种具体的容器运行时实现技术,而是直接操作
【3】Kubernetes资源管理 资源对象kubernetes系统的 api server基于http/https接收并响应客户端的操作请求,它提供了一种基于资源的RESTful风格的编程结构,将集群的各种组件都抽象成为标准的REST资源,如Node、Namespace和Pod等,并支持通过标准的HTTP方法以JSON为数据序列化方案进行资源管理操作。kubernetes系统将一切事物都抽象为API资源。工作负载型资源Pod是工作负载型资源中的基础资源,它负责运行容器,并为其解决环境性的依赖。但pod可能会因为资源超限或节点故障等原
【2】Kubernetes集群安装 本篇博文有着详细的步骤,可以帮助你快速搭建起来一个kubernetes集群。硬件角色主机名ip地址masterk8s-master1192.168.80.100nodek8s-node1192.168.80.101nodek8s-node2192.168.80.102环境准备在所有机器上关闭防火墙systemctl stop firewalldsystemctl disable firewalld在所有机器上关闭selinuxsed
【1】Kubernetes概述 Kubernetes 是什么?Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。kubernetes拥有一个庞大且快速增长的生态系统。kubernetes的服务、支持和工具广泛可用。kubernetes这个名字源于希腊于,意为舵手或飞行员。k8s这个缩写是因为k和s之间有八个字符的关系。google在2014年开源了kubernetes项目。kubernetes建立在google在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区
samba挂载失败 mount: wrong fs type, bad option, bad superblock on //192.168.80.193/share, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program) In som
vsftpd权限控制 vsftpd有三种不同方式进行权限控制匿名用户如果使用匿名用户进行登陆,如何让匿名用户能够拥有所有权限,下面是列出要点不是完整步骤第一个要点,/etc/vsftpd/vsftpd.conf anonymous_enable=YES anon_umask=022 anon_upload_enable=Yes anon_mkdir_write_enable=Yes anon_other_write_enable=Yes第二个要点,不能将/var/ftp目录的权限修改过大,否则会登陆
Linux shell中的正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
Flask渲染Jinja2模板 1. 模板简介模板是一个web开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要渲染一个有富文本标签的页面。这时候我们就需要使用模板了。在Flask中,配套的模板是Jinja2,Jinja2的作者也是Flask的作者。这个模板非常的强大,并且执行效率高。以下对Jinja2做一个简单介绍!1.1 Flask渲染Jinja模板:要渲染一个模板,通过render_template方法即可,以下将用一个简单的例子进行讲解:from flask import Flask,re
python文件操作 大家都知道python除了有基本数据类型还会有元组、列表、字典等丰富的数据类型,但是如果当我们的数据没有存在其中,而是存在了文件里,我们如何操作文件里的内容呢?下面以一个案例进行展示:假设文件a.txt内容:每一行内容分别为商品名字,价钱,个数。apple 10 3tesla 100000 1mac 3000 2lenovo 30000 3chicken 10 3通过代码,将其构建成这种数据类型:[{‘name’:‘apple’,‘price’:10,‘amount’:3},{‘nam
Su和sudo的区别 这是一个悲惨的故事,面试官问我su和sudo有什么区别,我感觉我会但又不完全会。在我精心回答了之后,面试官说多看看基础吧。。。最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下。1. 准备工作因为本文涉及到用户切换,所以我需要提前准备好几个测试用户,方便后续切换。Linux 中新建用户的命令是 useradd ,一般系统中这个命令对应的路径都在 PATH 环境变量里,如果直接输入 useradd 不管用的话,就用绝对路径名的方式:/usr/sbin/useradd
k8s使用deployment实现金丝雀发布 金丝雀发布Deployment控制器支持控制更新过程中的控制,如“暂停(pause)”或“继续(resume)”更新操作。比如有一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。kubectl rollout: 版本升级相关功能,支持下面的选项:status 显示