phpor

11月 292018
 

在Powershell中设置:

使得Powershell中可以:

  • ctrl – D :  退出
  • ctrl – W:删除一个词
  • ctrl – A: 跳到行首
  • ctrl – E: 跳到行位
  • 等等,和使用bash的快捷键很相似了

 

话说,上面那行在哪里设置?

就是Powershell中直接输入: $PROFILE 回车,就是这个文件

 

参考:

 Posted by at 下午 4:32
11月 272018
 

rancher集群初始状态:

1个 master + etcd +worker

1个worker

kube-apiserver进程为:

etcd进程为:

修改:

添加一个 etcd + master,上面的进程为:

kube-apiserver:

etcd进程:

 

出现的问题:

  1. 原有的etcd进程要将新的etcd添加到集群中,但是,报错为:
  2. 由于添加出错,原有的etcd就不断尝试添加,但是该过程中2379的端口是不listen的,由于etcd出现问题,原有的kube-apiserver也就没法正常工作,所以,就算想删除新加的节点也是无计可施;
  3. 如何让etcd放弃添加新节点呢?
    这个问题的重要原因在于etcd节点从单节点扩展到双节点,两个节点是最不好的集群,其中一个出问题,另一个没法说了算

rancher 2 etcd节点扩展为3 etcd节点:

  1. 新etcd节点由于也属于集群节点,所以,需要部署 kubelet、kube-proxy、flannel,非master节点还需要部署nginx-proxy
  2. 新etcd节点上etcd的启动参数都没有问题,但是,还是报cluster ID mismatch,不过,容器中执行:

    后,重启容器就OK了
    总之,没有顺利扩展出来etcd节点过
  3. 虽然我们可以不使用rancher的办法扩展etcd节点,但是,由于rancher自动维护etcd节点添加到kube-apiserver的命令行参数里面,所以,自己手动扩展的etcd并不会被用上
  4. 3个etcd节点停掉一个的时候,etcdctl member list 看不到节点停掉的状态

思考:

  1. etcd新节点启动的时候应该  –initial-cluster-state=existing 才对吧? 否则,它怎么能知道自己需要加入到别的集群呢?
  2. 由于etcd新节点设置了  –initial-cluster-state=new ,而且初始的集群成员只有自己:

    所以,理所当然地启动起来就可以工作了,自己就是一个全新的集群了
  3. 由于新节点上kube-apiserver配置的etcd后端就是etcd新节点,所以,kube-apiserver 也不知道自己是需要维护原有集群,而不是新建集群的,所以就直接访问新的etcd开始初始化一个新的集群了
  4. 所以,rancher这里实现的是不是有问题?
 Posted by at 下午 5:25
11月 272018
 

通过/etc/wsl.conf修改mount方式:添加 metadata选项

默认mount:

修改后:

原理:

本来,Windows的文件系统和Linux的文件系统是不一样的,Linux的文件的权限在Windows上是没有的,通过一个metadata选项就磨平了这个问题。

参考:

 Posted by at 下午 3:27
11月 272018
 

启动wsl的多种方式:

    1. [distro] ie ubuntu
    2. wsl.exe or bash.exe
  1. wsl [command] or bash -c [command]

Windows命令和Linux命令的融合:

windows中访问linux命令:

wsl中直接访问Windows的程序:

Windows的path会自动添加了wsl的PATH中的,只要可执行文件名带上 .exe 就会直接执行windows的命令的;如果当前的工作目录只存在于wsl中,则windows程序会fallback到c:\temp

不过,也可以通过如下方式,机制wsl中调起Windows程序:

或者通过wsl.conf来配置:

/etc/wsl.conf

通过  wslconfig.exe 来配置默认的Linux子系统

修改wsl中的language: https://docs.microsoft.com/zh-cn/windows/wsl/faq#how-do-i-change-the-display-language-of-wsl

修改成中文,需要子系统中安装中文包,如:

然后再:

限制:

  1. Windows程序不允许直接修改wsl内部的文件(可能根本就看不见)

Ubuntu子系统的安装位置:

Ubuntu子系统根目录:

注意:

  1. Windows升级后可能会禁用wsl,导致wsl无法使用,解法:powershell管理员权限中执行:

    注:这个就是【启用或关闭windows功能】中开启【适用于Linux的Windows子系统】的命令行用法

wsl 子系统中手动mount windows上的目录:

这样挂载的属主用户是root,可以通过-o来指定目录权限,用户id、组id:

 

自动启动WSL:(设置一个开机或用户登录windows时触发执行的计划任务就行了)

注意: 计划任务可能有电源相关的条件,如果没有插电(只用电池),计划任务是不执行的,如果插电了,计划任务就立即触发了

参考: https://dev.to/ironfroggy/wsl-tips-starting-linux-background-services-on-windows-login-3o98

参考:

https://docs.microsoft.com/en-us/windows/wsl/wsl-config

https://docs.microsoft.com/zh-cn/windows/wsl/interop

https://docs.microsoft.com/zh-cn/windows/wsl/release-notes

 Posted by at 上午 10:50
11月 272018
 

ceph osd日志中显示,偶尔会收到来自于如下进程的信号:

如:

而且,通常出现在日志文件的第一条。

原因:

这个是 /etc/logrotate.d/ceph 中配置的用于切换日志文件的,没有其他影响

 

 Posted by at 上午 10:24
11月 222018
 

本人使用的Windows,这里了只说Windows

可以自己安装一个: http://www.dhcpserver.de

禁用DHCP:

查看:

 

禁用:

 

 Posted by at 下午 4:21
11月 212018
 

话说: 明明已经解析成功,为啥还附带了一个:

抓包看看:

原来,client端分别查询了IPv4 和IPv6, 然而IPv6查询是失败的,所以,一个成功,一个失败

 Posted by at 上午 10:34
11月 212018
 

Wireshark 在Windows上不能对环回网卡lo进行抓包,因为:

Windows TCP/IP stack does not implement a network loopback interface, as found in other TCP/IP stack like lo* interfaces in BSD systems.Thus, it is not possible to sniff network traffic using the typical Windows packet capture driver, WinPcap.

 

其实,不仅本地环回的lo上的数据包抓不着,本机访问本机的非lo接口的数据包也是抓不着的,应该是数据包抄近道了

 

参考:

替代办法: https://www.netresec.com/index.ashx?page=RawCap

 Posted by at 上午 10:27