陈沙克

Jun 152021
 

这篇文章是参考青云的文章,我在CentOS 上重新测试一遍。

我目前测试基本都是在阿里云香港上启动spot 虚拟机,这样的成本很低,也可以满足网络的需求。

kebekey

wget https://github.com/kubesphere/kubekey/releases/download/v1.1.0/kubekey-v1.1.0-linux-64bit.rpm
rpm -ivh kubekey-v1.1.0-linux-64bit.rpm

kubernetes 配置文件

kk create config --with-kubernetes v1.19.8

编辑配置文件

apiVersion: kubekey.kubesphere.io/v1alpha1
 kind: Cluster
 metadata:
   name: sample
 spec:
   hosts:
 {name: cilium, address: 192.168.10.4, internalAddress: 192.168.10.4, user: root, password: Chenshake1208} roleGroups: etcd: cilium
 master:
 cilium
 worker:
 cilium
 controlPlaneEndpoint:
 domain: lb.kubesphere.local
 address: ""
 port: 6443
 kubernetes:
 version: v1.19.8
 imageRepo: kubesphere
 clusterName: cluster.local
 network:
 plugin: cilium
 kubePodsCIDR: 10.233.64.0/18
 kubeServiceCIDR: 10.233.0.0/18
 registry:
 registryMirrors: []
 insecureRegistries: [] 

初始化

kk init os -f config-sample.yaml

部署kubesphere

kk create cluster -f config-sample.yaml --with-kubesphere v3.1.0

Hubble

kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/1.9.7/install/kubernetes/quick-hubble-install.yaml
Jun 112021
 

今天孩子生日,还是要按时开始记录。现在他在泰国清迈上课,今天的生日蛋糕,在学校和同学一起分享,这个以前其实是没有体验过的。应该会留下一个美好的记忆。

基本情况

  • 身高160,比去年增加10厘米
  • 体重122,比去年增加了26斤,体重增加明显过快。

总结

我是快乐教育的支持者,从来也没太多要求小孩的功课,目前五年级,在班里,全班40个小孩,他就是25名左右。马上就面临初中,高中的问题,这种问题,对外地小孩,其实就是更加敏感。

孩子大了,也慢慢懂事,对于升学的问题也显得比较敏感。问题的解决也很简单,直接让小孩到泰国清迈读国际学校。

亚洲大概有3个地方,国际学校比较发达,泰国,马拉西亚,新加坡。清迈成本是最低,国际学校也非常多。所以为啥选择清迈就是因为穷。

申请国际学校的过程,其实比较简单,直白点,正常的小孩,都是可以搞定,至于英语,其实去那边折腾半年都会了。国内的英语教学,其实是很惨的,这次我陪孩子远程面试,孩子的英语应该是代表北京四年级小孩的水平,而且还是花费了4万的课外培训的费用,结果非常不理想。投入和产出,是不成比例。所以在国内提高英语水平,是不合算的。当然口语的面试,不会影响孩子的录取,只是会建议后续参加一个加强班。

申请到学校,后续申请签证,申请陪读签证,基本是一个流程的事情,没太多的阻碍,基本所有的国家都是欢迎这种留学和陪读,尤其是泰国。由于疫情,也导致流程复杂一点,我们从联系学校到飞去泰国,5个月的时间,大概是2020年10月份开始,2021年3月2号飞机去泰国。其实如果是以前,真的不需要那么长时间。

清迈的费用是朋友经常问的问题,其实一句话概括,比国内便宜。

清迈费用大概是:=住宿(3千人民币,水,电,上网)+吃饭(3千人民币,2人)+保险(1千,2人,私立医院住院可以报销)+孩子国际学校费用(平均4千一个月)+车的费用(1千)

所以一年15万就够用,20万,就是天天下午茶。现在疫情期间,上面的费用,很多还会八折。

英语

孩子到国外,如果不了解的家长,一般比较担心孩子的英语,是否可以跟上,听懂,我个人倒是不担心这块,身边很多这样的例子,10岁左右的小孩,用不了1年时间,就已经满口英语。

孩子过去3个月,找了一个英格兰的英语老师,每天陪他口语,一对一,这样效果其实很好,每天1个半小时,半个月其实提高的很快。儿子现在号称上课可以听懂百分七十。就是很多单词,没看懂。

老外用英语给儿子讲语法,儿子做的英语笔记,还是很逗的,非常特别,和国内的英语教学完全不同。

数学

其实大家估计都知道,国外的数学都比较简单,孩子都不是问题。不过具体为啥,这次就需要理解一下。

孩子上学,有一段时间是网课,使用的是可汗学院的材料,他们讲课的过程,和国内差异很大。解题思路也是。

或者他们是需要让孩子理解原理,而不是简单的获取答案。对孩子来说,估计要学会用他们的数学的思维来解题才行。

等明年,12岁的时候,好好看看,比较一下,和在国内上学的小孩的差异。

业余爱好

整理一下孩子目前的业余爱好,尤其到泰国3个月时间发生的变化。我是一个没有兴趣爱好的人,所以,也不能免俗,培养小孩的爱好。

清迈玩啥都比国内便宜很多,好好培养兴趣,可以搞成10大爱好。

  • 骑马
  • 网球
  • 高尔夫球
  • 棒球

篮球

在北京,其实很难找到机会学打篮球,这次去清迈,也巧合,遇上一个很好的篮球教练,用美国NBA的方式来训练小孩,那位教练是因为爱好而教小孩,带着3个小孩每周打球2个小时,训练的场地就是教练的家里别墅。

每次锻炼,孩子的衣服湿透,在太阳底下,非常累,孩子还是非常喜欢。后来把时间改成周五下午6点到8点,这样天气没那么热。

孩子能这样坚持打篮球,还是比较高兴点事情。那么辛苦的事情,他都能吃下。也期待他未来作为一种爱好一致玩下去。

游泳

现在住的地方,就有泳池,可以去玩,非常方便。不过要找教练好好提高一下,专业训练过的,还是不一样。并不是希望孩子走所谓专业路线,而且玩的水平更高。

清迈的这种培训,1对1,费用大概是100rmb,那么还是可以接受,明年生日的时候,找到合适的教练,更上一层楼。目前其实就是还不会蝶泳,一个人可以游2千米,不是问题。

泰拳

儿子在国内就学过泰拳,这次去到清迈,也找到了泰拳的培训,教练来上课。还是很有意思,有群体的课程,学员间可以进行打比赛,可是真打,这点就真的比国内那种散打,对练花拳绣腿的一个对比。

泰拳训练,也是比较辛苦,小孩倒是,还是比较能接受,一个小时,那么高强度训练。他都可以坚持一下。

编程

儿子目前的python编程,已经进入的pygame阶段,其实也已经比较难的阶段。尤其现在,孩子还不在我身边,他有什么问题,需要他自己解决。我每个周末,最重要的事情,就是和儿子一起解决作业的问题,让老师帮忙把课程录制一下,我基本靠重听课程,帮儿子解决作业问题。

这也是一种很好锻炼,他去清迈也坚持了每周一节的python课程。对游戏的代码还是比较感兴趣。希望可以坚持下去吧。

如果进展顺利,明年12岁,就可以完成python的课程学习,

儿子在学校的计算机课程,上机是用mac电脑玩scrach游戏,为了快速过关,改了一下代码,就顺利通关,特别有成就感。

滑雪

泰国是没法滑雪,所以在离开国内,好好滑雪滑了几次,甚至都上高级跑道走走,中级跑道,已经是没啥问题。远超很多同龄小孩。

日后想滑雪,估计要么去日本北海道或者回国。

画画

清迈艺术的气氛很浓厚,也希望孩子可以继续画画,孩子在北京参加最成功的培训,应该讲是画画培训,大概3年,去老师家里画画,每周2个小时。这次到清迈,经过家长互相推荐,也找到了一家培训机构。

懂行的说,画的非常不错,颜色层次。

May 282021
 

本周参加了一个培训,直接就是上机练习。整个流程,基本是我见过,体验过最好的,记录一下。以前IT培训有一个规律,很难超过50人,所以也就导致当年新东方尝试做IT培训,复制英语培训的上失败。主要是上机实验环节,如何能确保100人,10000人都能完成实验,在指定的时间内。这是非常有挑战的事情。

阿里云香港虚拟机

老师提前用terraform去阿里云香港创建了20多个虚拟机,还采用密钥登陆,每个虚拟机,分配一个公网ip。整个过程,其实还是非常方便的。

老师其实还是提前上虚拟机里,把实验需要要做的事情,用ansible处理了一下,这样学员登陆上去,就可以直接使用。

老师甚至把环境变量都帮忙配置好。整个实验,包括k8s安装,服务网格的安装,都是非常流畅。

微信群和腾讯文档

培训,一般都会建议一个微信群,不过这个群,还是很有创新,公告包括wifi,你登陆使用的密钥的下载地址。这样你进群后,就基本知道如何做了。

这次上课的整个过程,做笔记上最爽,基于腾讯文档,大家协同。由于有不少代码,如果出错,可以直接复制文档里,正确的代码。

所以20多人,基本大家都可以把实验做完,慢慢体会就可以。

这次没有使用腾讯会议,如果我们用腾讯会议,远程,完全也是可以。

改进

酒店里的wifi,插线板,都是需要提前考虑。对于mac电脑,好处是压根不需要考虑电源的问题。投影的清晰度,分享演讲的ppt。

May 222021
 

给儿子报了python的编程课,作业变成我的作业,每周是必须完成的,这可以算是经典的自己给自己挖坑。

这段代码,实现一个方块,可以用键盘操作,到处走,还能用鼠标进行操作,更改颜色。

真的是吃饭的时候,才想到办法,让改变颜色的操作wait 一下,才能实现那种更改颜色的效果。鼠标点方块里,改变颜色,鼠标在外面,就跟着走,按空格键,方块会变大。

import pygame,time
from random import randint as rd

pygame.init()

screen = pygame.display.set_mode([640,480])
pygame.key.set_repeat(20)
r = pygame.Rect(0,0,50,50)

def draw():
    screen.fill([255,255,255])
    pygame.draw.rect(screen,(0,128,0),r)
    pygame.display.flip()

def keydown(i):
    if i.key == pygame.K_UP:
        r.y-=10
    if i.key == pygame.K_DOWN:
        r.y+=10
    if i.key == pygame.K_RIGHT:
        r.x+=10
    if i.key == pygame.K_LEFT:
        r.x-=10
    if i.key == pygame.K_SPACE:
        r.h+=10
        r.w+=10

def mousedown():
    b=pygame.mouse.get_pos()    
    if r.x<b[0]<r.x+r.w and r.y<b[1]<r.y+r.h :       
        pygame.draw.rect(screen,(rd(0,255),rd(0,255),rd(0,255)),r)
        pygame.display.flip()
        pygame.time.wait(1000)

    else:
        r.x=b[0]
        r.y=b[1]   
   
a=1
while a ==1:
    draw()

    e = pygame.event.get()
    for i in e:
        if i.type == pygame.QUIT:
            a = 0     
        if i.type == pygame.KEYDOWN:
            keydown(i)
        if i.type == pygame.MOUSEBUTTONDOWN:
            mousedown()


pygame.quit()
     
May 182021
 

要上传一个文件到阿里云的对象存储,7个G,所以就只能用客户端。专门研究了一下。

OSS控制台客户端Mac版,做阿里云上就可以找到,免费。所以就是在mac安装就可以。

需要输入账号的创建 AccessKey。填入 AccessKey ID,AccessKey Secret,就可以开始使用。

May 172021
 

已经讨论了很久这套组合,这次动手验证一遍。流程还是非常顺利。从0开始,到部署完成kubesphere,基本2个小时可以搞定,主要是考验带宽。后续再慢慢研究离线安装。

青云设置

青云新的Dashboard改动很多,功能也真的比以前增加了很多很多。我也是需要花时间熟悉一下。其实我以前在青云上测试,基本上一个虚拟机来测试,这次至少要用3个虚拟机,需要vpc来玩,整理一下这个过程

  • 创建一个项目,kubeOperOperator and KubeSphere。青云引入了项目的概念,有点类似Azure的资源组,你可以在项目里看到所用到的资源。
  • 创建一个安全组,安全组有一个选项,组内互通,这个我打开的,应该是比较方便。为了方便,我打开所有的端口。
  • 创建vpc,指定网段,192.168.0.0/16, 创建子网,网段 192.168.10.0/16
  • 公网的ip,绑定在vpc上
  • 创建一个。4core,8g内存,60G存储的虚拟机,CentOS 7.9,用来部署kubeoperator。ip地址,指定 192.168.10.10
  • vpc上,进行端口映射,22,80,映射到192.168.10.10 这台虚拟机上。后续还需要映射30880端口到master节点到内网ip,这里是192.168.10.30
  • NFS Server 也部署在kubeoperator机器上。
  • 创建3台机器,master配置:4core,8G,60G存储,work节点,2core,4G,20G存储。

KubeOperator

安装

对于kubeOperator安装,倒是比较简单,一条命令就搞定。

curl -sSL https://github.com/KubeOperator/KubeOperator/releases/latest/download/quick_start.sh | sh

4M带宽,大概需要20分钟下载。组件都是部署在Dcoker里,通过compose来实现部署到机器上。

地址: http://<ko服务器_ip>:80
用户名: admin
密码: kubeoperator@admin123

相关命令

koctl status
koctl --help

设置

如果你是通过手动的方式来安装的话,倒是比较简单。这里就不截图,只是记录一个过程

  • 设置仓库地址,就是kubeoperator的地址
  • 创建凭证,就是节点root的密码
  • 创建项目
  • 添加主机,一台是master,一台是work节点,这两台机器,提前在青云平台创建。
  • 项目把主机添加到项目里
  • 项目里创建集群:这就是一个K8S集群。
  • k8s部署完毕,进入集群,设置存储:NFS
  • 需要通过kubectl,把NFS存储设置成默认存储,这样就可以顺利进行KubeSphere的安装

你可以在访问创建的集群里玩玩k8s。

安装NFS server

mkdir /data/nfs -p
yum install -y nfs-utils
vim /etc/exports
/data/nfs *(rw,sync,no_root_squash)

systemctl enable --now rpcbind.service
systemctl enable --now nfs-server.service

在部署的cluster里,配置nfs存储,查看存储的sc。你需要设置default 的存储。

> kubectl get sc
NAME              PROVISIONER   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
mynfs (default)   nas           Delete          Immediate           false                  28m

kubectl patch storageclass mynfs -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

KubeSphere

安装

KubeSphere的安装,也很简单。因为KubeOperator 提供web的kubectl,直接就可以进行kubesphere的安装

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/kubesphere-installer.yaml
   
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/cluster-configuration.yaml

等着就可以,可以通过命令,查看安装的进度。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

安装过程,如果看到出现错误,例如我没设置默认存储,你配置完成默认存储后,你需要重启pod,继续安装

kubectl -n kubesphere-system rollout restart deploy

查看登陆地址

kubectl get svc/ks-console -n kubesphere-system

kubesphere web 端口是 30880,并通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台。记得去vpc上做30880的端口映射。

配置

默认的安装,是没有包括devops的相关组件,这个可以通过web方式启用,也可以通过修改配置文件搞定。