Dec 032018
 

这算是我第一个在OpenShift靠自己能力搞定的应用,别见笑。

利用一键安装,迅速搞定Openshift

关于Etherpad的介绍

https://www.oschina.net/p/etherpad

google员工出品,目前归属google,值得信赖。

红帽的工程师提供现成的安装办法,让大家体会一下。

https://github.com/wkulhanek/docker-openshift-etherpad

我是命令行下搞定安装的。

oc new-project etherpad --display-name "Shared Etherpad"

创建数据库,mysql。由于我们的环境,对镜像做了一点修改,默认mysql的版本就是5.7

oc new-app mysql-persistent --param MYSQL_USER=ether \
--param MYSQL_PASSWORD=ether --param MYSQL_DATABASE=ether \
--param VOLUME_CAPACITY=4Gi

去掉最后的参数,mysql的版本就可以。

开始部署

oc new-app -f \
https://raw.githubusercontent.com/wkulhanek/docker-openshift-etherpad/master/etherpad-template.yaml \
-p DB_USER=ether -p DB_PASS=ether -p DB_DBID=ether -p DB_PORT=3306 -p \
DB_HOST=mysql -p ADMIN_PASSWORD=secret

 

如果第一次部署失败,再deploy一次就可以,因为下载镜像,比较慢。

这个时候,修改hosts文件,你就可以访问。如果需要https,那么修改一下router就可以。

Dec 022018
 

如何在OpenShift管理虚拟机,这是一个很好玩的东西,今晚好好测试一下。

我已经把Openshift装好。

启用虚拟化

kubectl create configmap -n kube-system kubevirt-config \
--from-literal debug.useEmulation=true

安装kubevirt

oc login -u system:admin
oc adm policy add-scc-to-user privileged -n kube-system -z kubevirt-privileged
oc adm policy add-scc-to-user privileged -n kube-system -z kubevirt-controller
oc adm policy add-scc-to-user privileged -n kube-system -z kubevirt-apiserver

export VERSION=v0.10.0
oc apply -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt.yaml

这时候会下载很多docker,可以通过watch命令查看

安装virctl

curl -L -o virtctl \
    https://github.com/kubevirt/kubevirt/releases/download/$VERSION/virtctl-$VERSION-linux-amd64
chmod +x virtctl

Deploy a VirtualMachine

# Creating a virtual machine
kubectl apply -f https://raw.githubusercontent.com/kubevirt/demo/master/manifests/vm.yaml

# After deployment you can manage VMs using the usual verbs:
kubectl get vms
kubectl get vms -o yaml testvm

Web UI

参考文档

http://kubevirt.io/get_kubevirt/#install_3

Nov 282018
 

上学的时候,其实没正经对过几本所谓管理书籍,这次就当还债。

建立可持续成功组织的路径图和工具

这是书的标题,我看了其实不是太喜欢。因为世界上,肯定不会存在所谓的持续成功的秘籍。战略管理的创始人,自己搞的公司,就因为战略导致最后关闭。这是很讽刺的事情。

管理的书籍,经常过于神化,可能这不是作者的本意,经常是翻译,出版社为了吸引眼球,搞的这种标题。

案例

MBA课程经常会引用很多案例,不过现在也都面临很多尴尬的局面。因为书上的案例,可以已经从神坛掉下来。以前MBA书上讲的IBM,HP的案例,现在都面临的很尴尬的局面。

里面也提到一个国内的案例,广州建筑公司,很多时候,这种案例的包装,是否经得住时间验证。我是有疑问的。

公司成长的七个阶段

那么这个阶段划分,我倒是很认同

  1. 创新公司(识别和定义市场,开发产品和服务)
  2. 扩张  (获取资源,开发运营系统)
  3. 专业化 (获取资源,管理系统)
  4. 巩固 (企业文化)
  5. 多元化
  6. 整合
  7. 衰退和复兴

那么上面的描述的几个阶段,我们日常很多公司都可以看到,很多公司都会死在多元化。

书中对公司不同阶段,根据营业收入来定义,并且区分服务业和制造业。其实估值还是比较准确的。

作者强调企业到了扩张阶段,就必须考虑自己拥有运营系统,不能停留在手工阶段。后面也是需要管理系统跟上。

目前国内的创业公司,基本都会考虑钉钉。用钉钉来做内部的管理系统。企业的运营,管理,可以在一个系统上运行,并且代价是可接受的。

专业化管理和创业型管理

当企业到了一定的节点,管理就需要专业化,教科书上都是这样说的。书上讲了两者的区别。把公司搞专业化管理,这是面向大型公司。

其实很多企业,规模可能不大,通过家庭式来维系的长期发展,其实很多时候,也是可以发展的很好。这种例子,其实不仅仅是国内,其实国外也是一样。

以前读MBA,觉得就中国才会一家人都在企业里。其实国外也是一样的。最信任的,有时候还是家人。

企业文化

书上花了很多篇幅来强调企业文化,所谓价值观。那么这些东西,到底是什么呢?

写在墙上的,一定不是所谓真正企业的文化,价值观。

公司的价值,是由谁得到奖励,谁得到提拔,谁给解雇来决定的。

当公司开始运作的时候,领导者不是通过墙上的写的东西来指导工作,而是用实际行动来确立公司的价值。员工会根据领导的表扬,提拔,而做出相应的行动,大家也就逐步明白该如何做。员工就掌握了在公司生存和发展的游戏规则,并且根据这个而行动。这个很可能,大概率和墙上写的没啥关系。

Nov 262018
 

现在经常是多次nat,要搞清楚自己的公网IP,已经越来越不容易。

Option1:dig

我们需要装上bind-untils才能使用dig命令

yum install bind-utils

这个时候,运行命令就可以获取公网的ip。

# dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
112.64.119.141

这时候可以有很多玩法

myip="$(dig +short myip.opendns.com @resolver1.opendns.com)"
echo "My WAN/Public IP address: ${myip}"

还是挺方便,我在国内也是可以用。

Option 2:curl

# curl icanhazip.com
112.64.119.141
参考文章
Nov 082018
 

这是我同事写的一键安装OpenShift的脚本,解决了镜像下载速度慢,配置很复杂,ansible版本,主机名等坑人的问题。

脚本默认会设置中科大的docker缓存加速,所以大家会发现镜像下载非常快。另外有些镜像是从coreos官方的镜像仓库下载,导致下载很慢,我们把镜像重新上传到dock hub上。

我是用1core,4G内存,100G磁盘的虚拟机跑的。

从3.10开始,就必须要求把Selinux打开,所以这个大家就不需要关闭selinux。

cd /root
yum -y install git
git clone https://gitee.com/xhua/OpenshiftOneClick.git -b 3.11
cd OpenshiftOneClick/
bash deploy_openshift.sh
就那么简单.
脚本是可以反复执行。大家可以装好基本版本后,
再把EFK和普罗米修斯装上,那么是需要修改下面参数
不过大家一定要注意,如果你的机器性能不是足够高,根本扛不住,因为监控的数据量是非常大,甚至会把平台压垮。
我在vmware的虚拟机里,看到每秒600MB的写入,我真的是第一次看到。
# cat config.yml
---
CHANGEREPO: true
HOSTNAME: os311.test.it.example.com

Change_Base_Registry: false
Harbor_Url: harbor.apps.it.example.com

FULL_INSTALL: false
SAMPLE_TEMPLATES: true

PV_COUNT: 20

把FULL_INSTALL: false,改成true,就可以了。

SAMPLE_TEMPLATES: true,如果改成false,那么openshift默认带的应用模板不会导入,会导入我希望装上的模板。这是为了我后续把整个ci需要的工具链,都做成应用商店,直接就可以使用。

目前已经默认创建了20个pv,镜像仓库已经使用了一个pv。那么后续的gitlab,snoarqube,nexus,jenkins的存储都有了。

修改本地hosts记录 C:\Windows\System32\Drivers\etc
192.168.100.10 console.apps.os311.test.it.example.com
192.168.100.10 hawkular-metrics.apps.os311.test.it.example.com
192.168.100.10 registry-console-default.apps.os311.test.it.example.com
192.168.100.10 prometheus-k8s-openshift-monitoring.apps.os311.test.it.example.com
192.168.100.10 grafana-openshift-monitoring.apps.os311.test.it.example.com
使用

admin,admin登录就可以

如果你选择全部组件安装

Snap8

登录后,如果你选择不安装红帽默认的应用商店。
Snap9