魔术师的博客

好好吃饭,明天的烦恼明天再烦


  • 首页

  • 归档

深入学习容器——服务暴露

发表于 2018-04-17

docker环境下,所有的程序都运行在一个独立的空间中(类似于虚拟机),不同容器之间无法互相访问。要想访问容器中的应用,必须要借助于网络。容器能够被外界访问,这就是容器暴露。容器作为服务提供给外界访问,这是服务暴露。由于docker经常以微服务的形式存在,所以本文重点在于服务暴露。当然在介绍服务暴露之前,会介绍容器暴露作为基础。无论怎么样的,访问容器和访问服务都需要网络。

阅读全文 »

学习在集群中工作—NFS文件共享

发表于 2018-04-13

刚进公司的时候第一次接触的服务器就是一个集群,一个RAC集群,为了集群正常工作,有一些文件需要在多个节点上一致,公司一些OA系统往往也需要所有节点的文件一致。以前采用的lsyncd+rsync的同步的方式进行工作,但是很容易出错,主要原因就是双相同步容易冲突,在高并发的时候就会出现异常。在学习docker集群的过程中也遇到了这些问题。由于一些服务需要在配置高可用(同时也是负载均衡),这些服务需要访问同一个文件目录。NFS能够解决这种文件共享问题。

1. 简介

NFS 是Network File System的缩写,即网络文件系统。功能是通过网络让不同的机器、不同的操作系统能够彼此分享文件,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。NFS使用RPC协议进行通信,也就是说NFS系统只是一组RPC程序。RPC是远程过程调用 (Remote Procedure Call) 的英文缩写,它是能使客户端执行其他系统中程序的一种机制。NFS可以看作是一个RPC Server,主要功能是管理需要分享的目录和文件。它不负责通信和信息传输,而是把这部分工作交给RPC协议来完成。即NFS在文件传送或信息传送过程中依赖于RPC协议。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

阅读全文 »

离线安装最新版kubernetes(1.10)

发表于 2018-04-08 | 分类于 docker

随着docker的流行,越来越多企业采用了容器技术作为IT部门的基础架构,越来越多的运用在了生产环境中。生产环境中各个应用都是以微服务的形式分布在各个主机中,k8s就是这样用于在分布式系统中管理容器的一种编排工具,提供基本
的部署,维护以及运用伸缩。

阅读全文 »

Bash学习之变量进阶

发表于 2018-03-20 | 分类于 linux

写脚本时候常常需要用到变量,但是Linux中的变量和一般编程语言中的变量差别较大,这里罗列一些比较细节的用法。

变量的特殊用法

  1. $? 表示上一个语句的执行结果
  2. $# 脚本或者函数输入的参数数量
  3. $0 表示脚本名称
  4. $1-n 表示具体输入的第几个变量
  5. $@ 表示所有变量
  6. ${!name} 间接引用,表示将$name这个变量的值作为一个变量的名称,如下:
    $ export xyzzy=plugh ; export plugh=cave
    $ echo ${xyzzy} # normal, xyzzy to plugh
    plugh
    $ echo ${!xyzzy} # indirection, xyzzy to plugh to cave
    cave

这个特殊用法还有一个用法,

6. **shift**命令,shift可以将参数依次轮询,即通过`$1`就可以访问所有元素。注意这个不会影响`$0`。shifit可以接受参数,指定跳跃多少个参数。但是如果跳跃的值大于了当前的`$#`,那么参数不会受影响,而shift则会返回0。下面这个案列展示了这个效果:
```bash
#!/bin/bash
# shift-past.sh
shift 3 # Shift 3 positions.
n=3; shift $n
# Has the same effect.
echo "$1"
exit 0
# ======================== #
until [ -z "$1" ]
do
echo -n "$1 "
shift 20 # If less than 20 pos params,
done #+ then loop never ends!
# When in doubt, add a sanity check. . . .
shift 20 || break

  1. let指令用于变量数值的加减。
  2. 字符串在加减中默认为0

Bash学习之特殊符号

发表于 2018-03-19 | 分类于 linux

bash中很多符合都有不同的用处,有一些符号的用法初看极其晦涩,给阅读和写代码带来了不少障碍,今天就系统学习一下这些特殊符号用法。本次阅读的书籍是来自Mendel Cooper的《Advanced Bash-Scripting Guide》,Bash脚本高级进阶。

阅读全文 »
123

MagicSong

15 日志
3 分类
24 标签
GitHub E-Mail 微博 知乎
© 2017 — 2018 MagicSong
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4