Mac 安装 item2 终端
下载1https://www.iterm2.com/ # 安装完成后,在/bin目录下会多出一个zsh的文件
切换默认终端
Mac系统默认使用dash作为终端,可以使用命令修改默认使用zsh
1chsh -s /bin/zsh
安装 oh my zsh12# curl 安装方式sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
12# wget 安装方式sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
安装 PowerLine12341: 没有pip 命令需要安装pip sudo easy_install pip2: 安装powerLine: pip install powerline-status --user
安装Pow ...
ConfigMap
ConfigMap 许多应用经常会有从配置文件,命令行参数或者环境变量中读取一些配置信息,这些配置信息不应该直接写死在到应用程序中,比如你一个应用连接一个 redis 服务,下一次下一次想要更换一个的,还得重新修改代码,重新制作一个镜像, 这样是不可取的, ConfigMap 给我们提供了向容器中注入配置信息的能力,不仅可以用来保存单个属性,也可以用来保存整个配置文件,比如我们可以用来配置一个redis服务的访问地址,也可以用来保存整个redis的配置文件
创建通过Yaml文件创建
ConfigMap资源对象使用 key-value 形式的键值对来配置数据,这些数据可以在 Pod 中使用, ConfigMap 和我们后面的 Secrets 比较类似,一个较大的区别是 ConfigMap 可以比较方便的处理一些非敏感的数据,比如密码之类的还是需要使用 Secrets 来进行管理,
1234567891011apiVersion: v1kind: ConfigMapmetadata: name: cm-demo1data: data.1: hello data.2: world ...
Redis开发与运维 第一章
Chapter 1: 初始Redis1.1 盛赞Redis
Redis 是一种基于键值对(key-value)的 NoSQL 数据库, Redis的值可以是 string, list, hash, set, zset, Bitmaps(位图), HyperLogLog(地理信息定位) 等多种数据结构和算法组成,Redis 所有数据都放在内存中,读写性能非常优秀,Redis 还可将内存中的数据利用快照和日志的形式保存到硬盘上, 此外Redis还提供了键过期,发布订阅,事物,流水线,Lua脚本附加功能, 总之就是Redis 很牛。。。。
1.2 Redis特性
Redis 之所以被管饭应用, 主要是具备了以下特性
速度快
Redis 所有的数据都是放在内存中的,这是 Redis 速度快的主要原因
Redis 是用 C 语言实现的,C语言实现的程序距离操作系统更近,执行速度相对更快
Redis 使用了单线程,预防了多线程可能产生的竞争问题
Redis Redis 作者对于源代码的精打细磨
基于键值对的数据结构服务器
数据类型丰富,开发者可以根据数据类型实现各种的业务需求
丰富的功能
...
Python 动态属性和特性
Python中, 数据的属性和处理数据的方法统称为属性, 方法只是可调用的属性, 除此之外我们可以创建特性(property), 不改变类接口的前提下, 使用存取方法修改数据属性。出了特性, Python 还提供了很多的API, 例如控制属性的访问权限,实现动态属性,使用点号访问属性时, Python 解释器会调用特殊方法 __getattr__ 和 __setattr__, 动态创建属性是一种元编程, 框架的作者经常这样使用
使用动态属性转换数据osconfeed.json 文件内容如下
12345678910111213141516171819202122232425262728293031323334353637383940414243444546{ "Schedule": { "conferences": [ { "serial": 115 } ], "events": [ { ...
Golang 程序结构
Go 和其他语言一样,程序是由很多小的基础构件组成的,变量存值,简单的加法和减法运算被组合成复杂的表达式,还有基础类型被聚合为数组或结构体,后面这些都会一一学习到,先从最简单的 命令, 声明, 变量, 赋值,类型, 包和文件, 作用域这些基础的概念学习
命名
在 Go 中函数名, 变量名, 常量名, 类型名, 语句标识和包名, 遵循的规则为 一个名字必须以一个字母或下划线开头,后面可以跟任意数量的字母,数字或下划线, 严格区分大小写。
关键字
Go 的关键字并不是很多,有25个, 关键字不能用于自定义的名字,在特定的语法结构中使用
12345break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecon ...
Service
Pod 的生命周期是有限的,死亡过后不会复活,RC 和 Deployment 可以动态创建和销毁Pod, 这样会出现我们重新启动了Pod的话,那么它的IP也可能会发生变化,如果一组后端的Pod的集合为集群中的其他前端 Pod 提供API服务,如果在前端的 Pod 中把所有的这些后端的 Pod 都写死,后端Pod 正常的话这样是没有问题的,但是如果后端Pod挂掉,然后重新启动了,IP地址很有可能会变化,这是前端就有可能访问不到后端的服务了
解决办法
解决办法有很多种,从早期的nginx负载均衡来处理,以及后面的 服务发现工具解决,Consul, Zookeeper, etcd, 我们只需要服务注册到服务发现中心就可以了,这些工具会动态的更新 Nginx 的配置,这样就不用手动去修改 Nginx 的配置文件
Service
Kubernetes 也为我们提供了这样一个资源对象,Service, 当我们的 Pod 被销毁或者新创建过后,我们可以把这个Pod 的地址注册到这个服务发现中心去就可以了,前端不用直接去连接后台的Pod集合,连接到 Service 上即可, Service 是 ...
Job与Cronjob
在日常开发中通常会遇到一下任务,或者按时间来进行调度的工作,Kubernetes 提供了 Job 和 CronJob 两种资源对西那个来完成我们这种需求,Job 负责处理任务,仅执行一次的任务, 而 Cronjob 则就是在 Job 上加上时间调度
Job
利用Job 资源对象来创建一个任务,定义一个YAML文件如下,执行一个倒计时的任务
123456789101112131415161718---apiVersion: batch/v1kind: Jobmetadata: name: job-demospec: template: metadata: name: job-demo spec: restartPolicy: Never containers: - name: counter image: busybox command: - "bin/sh" - "-c" - "for i in 9 8 7 ...
HPA
我们可以通过 Dashboard 上操作Pod的扩缩容,但是在生产中这样手动的去操作肯定是不怎么显示的,因为我们并不清除业务请求什么时候达到需要扩容的时候,Kubernetes 为我们提供这样一个对象: Horizontal Pod Autoscaling 简称 HPA(Pod水平自动扩容), HPA 通过监控分析 RC 或者 Deployment 控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量.
docker stats 与 docker logs
背景
发现线上的服务器 CPU 占用过高, 部署在服务器上的项目都是用 Docker 部署的,我们想要知道某个容器占用系统的资源的详情,才能排查出问题出在那个项目上。
docker stats
在容器运行过程中, 我们想要知道容器使用的系统资源,Docker 为我们提供了 docker stats 命令来查看容器占用资源的情况, 命令参数如下
1234567891011[root@VM_16_57_centos ~]# docker stats --helpUsage: docker stats [OPTIONS] [CONTAINER...]Display a live stream of container(s) resource usage statisticsOptions: -a, --all Show all containers (default shows just running) --format string Pretty-print images using a Go template --help ...
Linux中buff-cache占用过高
背景
在服务器运行中 内存 是一个非常重要的指标,如果内存占用过高,会导致服务不可用,今天发现某一个服务挂掉了,然后上服务器查看,可用可用内存已经没有多少了,同时 buff/cache 占用过高。
查看内存使用情况
我们可以使用 top 或者 free -h命令查看当前系统的内存使用情况
1234[root@VM_16_58_centos ~]# free -h total used free shared buff/cache availableMem: 7.6G 5.7G 1.5G 2.6M 522M 1.7GSwap: 0B 0B 0B
available: 表示应用程序还可以申请到的内存
buff 和 cachebuff
buff(buffer cache): 是一种 I/O 缓存,用于内存和硬盘的缓冲,是io设备的读写缓冲区,根据磁盘的读写设计,把 ...