代码读的master上最新的 1641ff411. 命令入口文件在kubernetes/cmd/kube-scheduler/scheduler.go 主要就两句,设置启动参数。其他的设置命令行参数和日志打印。具体不看了 command := app.NewSchedulerCommand() command.Execute(); NewSchedulerCommand 在文件kubernetes/cmd/kube-scheduler/app/server.go 很多代码都是设置scheduler命令参数的,也是用的cobra这个库,跟docker是一样的。 opts, err := options.NewOptions() 读取默认配置 runCommand()执行命令 runCommand 比较有用的几行: c, err := opts.Config() 这里边东西比较多,比如初始化kube-client与api交互,eventclient,选举相关的配置。没仔细看,代码在kubernetes/cmd/kube-scheduler/app/options/options.go cc := c.Complete() stopCh := make(chan struct{}) 这个channel传入了Run函数,Run只会在报异常或者这个channel关闭的时候返回 是用来配合context提示go协程退出的 函数最后调用return Run(cc, stopCh) Run() 生成一个新的scheduler, sched, err := scheduler.New() 后边启动了事件传输,监控选举的,还有监控和指标收集的,这个先不看了。 再后边就是stopChannel配合context管理协程,还有一个leader选举的功能,是通过cc.LeaderElection参数来控制的. leader选举功能开启是为了高可用的时候使用 无论是否leader选举,最后都进入sched.Run()

Continue

这个问题官方github上有说,学了新知识,记一下。 wine-binfmt这个包没找到,然后我就继续安装,软件启动了但是没办法编译代码。issue上有排错,确实是wine安装问题。我在issue里边找到了解决办法。 手动添加一个解析 Windows 的 exe 的 binfmt 配置 vim /usr/share/binfmts/wine 内容填入 package wine interpreter /usr/bin/wine magic MZ 保存退出,更新一下配置就好了 sudo update-binfmts --import wine

Continue

办公电脑代码比较多,不方便网上共享,然后跟自己用的电脑同步一些东西比较麻烦。想着直接把办公电脑ssh内网穿透,这样回去看一下办公电脑上的文件就方便多了。 办公电脑基本不关机的。然后出口端口映射这些方法就不用想了,我正好有一台阿里云主机,网上找了一个反向隧道的方法。 在阿里云机器上.ssh/authorized_keys添加办公电脑的ssh公钥,准备两个空闲端口5678和54345端口。 办公电脑上安装autossh。 sudo apt install autossh 办公电脑上执行 autossh -M 5678 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 123.56.21.222:54345:localhost:22 userN@123.56.21.222 -p61397 # “-M 5678” 选项指定中继服务器上的监视端口,用于交换监视 SSH 会话的测试数据。中继服务器上的其它程序不能使用这个端口。 # “-fN” 选项传递给 ssh 命令,让 SSH 隧道在后台运行。 # “-o XXXX” 选项让 ssh: # * 使用密钥验证,而不是密码验证。 # * 自动接受(未知)SSH 主机密钥。 # * 每 60 秒交换 keep-alive 消息。 # * 没有收到任何响应时最多发送 3 条 keep-alive 消息。 # 如果你想系统启动时自动运行 SSH 隧道,你可以将上面的 autossh 命令添加到 /etc/rc.local。 ssh userN@123.56.21.222 -p 54345 #登录办公电脑

Continue

之前搞过一轮,又搞了一次。把试过的几种方法总结一下。 一种适合基本普通的安卓apk包,基本流程就是 1 右击apk包,使用mac解包工具解压, 2 把classes.dex转成jar包,cd ~/Downloads/dex2jar-2.0/ ./d2j-dex2jar.sh -f ~/Downloads/game.v316602/classes.dex 3 使用工具查看jar包源码,反编译java代码。 cd ~/tmp/jadx/build/jadx/bin -:> ./jadx-gui 然后想提取游戏资源,有的素材没加密可以直接从解压包里找到。其他针对不同情况从网上找了几种工具。 一种万能的工具: 一种英伟达的: 下载地址在这里 https://developer.nvidia.com/gameworksdownload 下载Tegra Graphics Debugger 支持Mac Linux Windows Tegra 机型查询 http://www.nvidia.cn/object/tegra-phones-cn.html 一种高通的: 下载地址: https://developer.qualcomm.com/software/adreno-gpu-sdk/tools 其他根据用的游戏框架不同,比如unity的框架,有专用的工具破解游戏资源。

Continue

又换ubuntu环境开发了,没找到好用的mysql客户端。用了几天mysql workbench,发现用不了,太难用了。准备还是用命令行来解决。 新建-:> vim ~/.my.cnf -:> cat ~/.my.cnf [clienttest_icloud] host=10.144.12.36 port=3306 user=icloud password=_icloud database=icloud .bashrc里边配置: alias db_test_icloud="mysql --defaults-group-suffix=test_icloud" 然后就可以直接执行db_test_icloud 来链接数据库了。

Continue

粗略的找了一个字体,要求不高,看着还行,然后小写l的样子有强迫症。最后选了一个monospace,总共看了没几个字体,这个就是下划线难看。以后再说 用打thinkpad,触摸板三指手势没搞定,网上的方法不好用,等后边再看看。 快捷键,准备把alt和ctrl调换一下,然后改一下终端tty的ctrl c中断。从网上搜了一下方法。 lsusb来确定外接键盘的vendorID和productID: dmesg 按键ID用的我之前文章里写的键盘记录工具。 /etc/udev/hwdb.d/ -:> cat external_keyboard.hwdb evdev:input:b*v0510p0032* KEYBOARD_KEY_0x700e2=leftctrl KEYBOARD_KEY_0x700e0=leftalt 执行更新操作 sudo udevadm hwdb --update sudo udevadm trigger --sysname-match="event*" 发现更改了也不好用,怎么都不能跟mac那样,还得改回去,看来只能慢慢适应了。

Continue

有测试机可以使用,但是想了想还是在自己电脑上装一份,就是低配mac硬盘不够用啊。 稳定版下载地址: https://download.docker.com/mac/stable/Docker.dmg 找了一圈好像稳定版都是这个地址。 还在下载,说说问啥要自己电脑上搞一份,准备把之前写的mysql查询平台放到github上,之前同事有要。想了想虽然没啥技术含量,放到github上搞个镜像,写个脚本,一键启动。这样方便安装,虽然项目我基本都写安装文档,但是还是一键启动的爽。初步想法是写个Dockerfile,执行安装脚本build。这样更新的话还是需要重新build。先这么搞搞看看。 动动鼠标,然后就安装成功了? -:> docker version Client: Version: 17.09.1-ce API version: 1.32 Go version: go1.8.3 Git commit: 19e2cf6 Built: Thu Dec 7 22:22:25 2017 OS/Arch: darwin/amd64 Server: Version: 17.09.1-ce API version: 1.32 (minimum version 1.12) Go version: go1.8.3 Git commit: 19e2cf6 Built: Thu Dec 7 22:28:28 2017 OS/Arch: linux/amd64 Experimental: true

Continue

按照官网很简单, 安装 npm install semantic-ui-react --save npm install semantic-ui-css --save 然后在index.js里导入 import 'semantic-ui-css/semantic.min.css'; 就可以用了。

Continue

又重新学习react了,这次按照官网再装一遍。react-native差不多了,react还没搞个东西,hah。 安装 npm install -g create-react-app 创建一个app create-react-app my-app 运行 cd my-app npm start 现在自带Babel监控文件,进行自动编译

Continue

捣鼓同学发的东西,发现有个shell安装脚本加密了,shell从来没系统学过,根据原理肯定是可以解密的。但是看代码头疼,这是我不想学shell的原因,shell可以写的很奔放,然后我都是用到了才去查去学。 没办法想走近路,我就找了一行感觉很有特征的语句去搜一下有没有相同的代码碰碰运气,不巧搜到了,找到了一个gzexe。 google gzexe发现是个linux系统自带命令,mac下也有。然后自带解密功能。尝试了一下。 我写了一个test.sh就打印了一行echo。 gzexe test.sh加密。生成一个加密test.sh 和一个test.sh~源文件。 gzexe -d test.sh 解密。 我看了一下mac下的源码和搜出来的不一样,可以有很多版本。然后我对比了一下gzexe加密的文件和加密文件,发现真的就是个变种加密方式,变量名替换了,很多细节变了,总的一样的。 因为gzexe的简单,一眼瞅出原理,然后再看加密脚本很简单了,分分钟破解之。 这里有几个点,一个是我再测试机上vim编辑的时候,编辑完执行就报错,我感觉就是vim修改文件了,特别是最后一行是加密数据。 然后我使用vim -b 二进制编辑的搞定了。 还有一点bash +x test.sh的方式执行脚本可以显示执行顺序,这个google出来的。在这里没用上。 gzexe具体代码也没看。没兴趣看。

Continue