使用K8s的ConfigMap服务

前言

我在前两篇文章里,介绍如何搭建Dashboard以及K8s的架构和实现原理,这篇文章,我么尝试使用ConfigMap创建Redis服务。

创建Redis服务

由于当前集群的安装的版本与官方的不一致,按照官方最新的教程来实现的话,可能会出现异常问题。在这里,我们尝试用kubectl的1.12版本来使用ConfigMap创建Redis服务。

首先创建configmap目录,存放我们的配置文件。

mkdir configmap
cat <<EOF >>./redis-config
maxmemory 2mb
maxmemory-policy allkeys-lru
EOF

在这里,我们定义redis的两个配置选项:最大内存容量为2MB,超过容量的策略为,首先尝试删除最近使用较少的(LRU)键,以便为添加的新数据腾出空间。

创建ConfigMap,名称为example-redis-config,配置文件为configmap/redis-config。

kubectl create configmap example-redis-config --from-file=configmap/redis-config

检查创建的configmap配置文件

kubectl get configmap example-redis-config -o yaml

apiVersion: v1
data:
  redis-config: |
    maxmemory 2mb
    maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
  creationTimestamp: 2019-07-14T06:16:30Z
  name: example-redis-config
  namespace: default
  resourceVersion: "2565685803"
  selfLink: /api/v1/namespaces/default/configmaps/example-redis-config
  uid: eb5f8b0d-a5fe-11e9-b0be-32a10a974892

新建redis-pod.yaml配置文件

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: redis:5.0.4
    command:
      - redis-server
      - "/redis-master/redis.conf"
    env:
    - name: MASTER
      value: "true"
    ports:
    - containerPort: 6379
    resources:
      limits:
        cpu: "0.1"
    volumeMounts:
    - mountPath: /redis-master-data
      name: data
    - mountPath: /redis-master
      name: config
  volumes:
    - name: data
      emptyDir: {}
    - name: config
      configMap:
        name: example-redis-config
        items:
        - key: redis-config
          path: redis.conf

创建pod

kubectl create -f configmap/redis-pod.yaml
pod/redis created

检查创建的pods

kuberctl get pods
NAME    READY   STATUS    RESTARTS   AGE
redis   1/1     Running   0          21s

验证创建的服务

kubectl exec -it redis redis-cli
127.0.0.1:6379> CONFIG get maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> CONFIG get maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
127.0.0.1:6379>

常用命令

比如创建服务kubectl create configmap命令,其中是要分配给ConfigMap的名称,是从中提取数据的目录,文件或文字值。

kubectl create configmap <map-name> <data-source>

参考链接

  1. Configuring Redis using a ConfigMap
  2. 使用ConfigMap来配置Redis

我是如何错过财富自由的

前言

在经过多次失败了,我开始对自己投资策略进行反思,竟然发现财富自由可能离我这么近。然而,最终自己竟然没有获得相应的财富,其根本原因可能是我的认知不够。查理芒格说,让自己配得上想要的东西。想要获得财富,那么让你的能力配得上它。曾经的我,由于认知不够,错过了很多机会。我在这篇文章记录下来,时刻提醒自己,升级认知可能是投资里最需要刻意练习的技能。

错过比特币

大约是在2013年的时候,我听说了比特币。当时我去下载一个钱包下来,进行一番挖矿。然后,发现这东西有什么用。甚至在一个网站上,有人免费的派发比特币。我去看了看,没有领到比特币,最后,我就删除了这个钱包。现在想起来,突然这么后怕,我竟然离财富自由这么近。如果我认真的研究了比特币,下载节点去同步,去阅读了相关源代码,说不定,今天写文章的人,就不是我了。

当然,说了很多,这些都是如果,你的认知是无法获得你配不上的财富。连比特币的白皮书都不知道,甚至都没有去阅读一遍,怎么会有相应的认知?对自己持有的标的,都没有理解清楚,如何心安理得地投资?没有对人性的理解,对投资的本质理解,如何进行认知的变现?

错过柚子

我第一次了解到柚子,完全是意外,我的一位同事通过数字货币赚取了人生第一桶财富。从他身上,我知道了柚子。我曾经打算买10000个柚子,但我在第一次够买EOS时,发现这个事情非常复杂。因为国家已经不允许交易所买卖了。所以你必须通过C2C的方式来做。当第一次柚子,跌到5块的时候,那是2017年9月份,我打算买1000个,但C2C又太麻烦了。我甚至还想到柚子跌到3块。后来确实跌到了3块,但我却没有去关注了。后来11月份左右,主网开始上线了,柚子一路涨到120元。

从这件事情后,对我的影响很大,让我明白人生的成功,不仅仅只有一种方法,应该是每个人的答案都是不同的。投资,是你必须要学会的一件事。特别是投资自己,才是最划算的。认知和践行,可能是一对孪生兄弟,两者缺一不可。有了足够的认知,却因为没有行动,也是无法获得变现的。

这让我开始对践行的思考,有了新的认识。

  1. 如何践行?
  2. 如何持续的践行?
  3. 如何深刻对自己进行反思总结?
  4. 如何持续的进行反思总结,并持续改进,促进良性循环?

还会错过区块链的什么

如果不能有效对自身的认知进行反思总结,还可能会错过亲自参与的机会吧。毕竟这是一个伟大的实验,竟然进行10+年,还没有失败。那么如何从这一次趋势获得最大的收益?这个问题答案,可能没有经历过,很难回答。那么我们尝试从逆向思维去解释,如何再一次错过区块链?我觉得有几个点:

  1. 自身认知不够
  2. 对行业没有关注
  3. 没有自身的影响力
  4. 无法理解技术的发展

大家都认为区块链,应该是下一次互联网浪潮的引爆点。区块链连接了所有的人,把数据的所有权还给本人,提升了价值传递的效率。那么知道这个趋势,你应该做什么才是最划算的?

  1. 提升自身的认知
  2. 等待机会
  3. 一击必中

总结

想到了,只是投资的万里长征的第一步,做到了,才是真正的践行。所谓的大师终究是大师,想到了且做到了。很多观点都是经历过时间的洗礼,依然闪闪发光。我等普通人,也只有仰望的权利。

如果你想获得你要的东西,那就让自己配得上它。

我是如何错过财富自由的

作为程序员,我是这样学习写作

​ 2018年1月2号,在这一天,我加入了一个神秘的组织–007不出局。这是一群梦想着,持续写作7年后,就一起去南极的一群人。正好这段时间,自己也在思考人生下一个阶段的计划,发现写作也许是一个靠谱的选择。

007不出局

​ 我是从娜姐的公众号,娜你说说吧加入到007不出局的。当初从订阅笑来老师的财富自由之路开始,发现有一个人留言特别勤奋,竟然从专栏文章的每一篇文章的留言完成了对自身成长的转变,最终得到了笑来的认可。加入007不出局后,其实是为了找到和自己一样想要改变的一群人,一起持续写作,也是为了锻炼自己的写作能力。

​ 2018年1月7号,我发表了加入007不出局后的第一篇文章。文章写得很简单,标题就是不出局就出彩。加入的初心也是想要寻找和我一样,想要成长,学习写作的战友,甚至slogan也让我心动:一个人走的快,一群人走得远。现在已经过去一年,回过头来,看看自己曾经走过的路,当初为什么要出发?

​ 这一年,我大约写了48篇文章,涉及到生活,投资,技术,学习等方面。这些文章几乎记录我的2018这一年经历全部的思考。现在回头看看,觉得非常有意义。写作记录了我的思考经历,一步一个脚印,独立思考的结果,记录着我经历的成长。这些都是宝贵的经验,不然,我们跟一只咸鱼有什么区别呢?

为什么要学习写作

其实写作这件事,我很早就开始做了。最开始在大学里看了刘未鹏的博客,思维改变生活,甚至我还亲自写了一篇文章自我剖析去说明写作的重要性。在文章中也列举了很多写作的好处:

  1. 书写是为了更好的思考。
  2. 教是最好的学。
  3. 书写是为了更好的思考,激励自己去持续的学习和思考,学会持之以恒的做一件事。

后来,看了笑来的财富自由之路,专栏的文章也从很多个角度列举了写作的好处:

  1. 写作是把自己的同一段时间重复销售很多很多次的极少数选择之一,也是相对来看最容易成为普通人起步的台阶之一。
  2. 持续写作很可能是锻炼学习能力、锻炼思考能力、锻炼分析能力、锻炼沟通能力的最直接、最低成本的方式。
  3. 想要获得财富自由的你,必须学会写作。

与所有的失败经历一样,写作这件事情,并没有持续做下去。好消息,我竟然也持续写作一年多了。总体来说,还算一个不错的开始。在这一年持续写作里,我总结出一些方法论来帮助自己更好的写作。

怎么学习写作

我的博客里,记录了从大学到现在工作整整10年的经历。从刚开始写,显得非常笨拙,基本上是想到哪里就写到哪里。到现在为止,我基本确认了适合自己的写作基本方法论。大致会分为以下3类。

3W写作

我把这个写作的方法论称之为3W写作。

那么什么是3W写作呢?

通常情况下,我们要把一件事讲清楚有3个要点:是什么?为什么?怎么用/做?基本就能把这件事情讲清楚了。那么写作也是一样的。确认写作的主题后,就可以从这3个要点展开来讲。

比如我写的必知必会系列。我会从是什么?讲述文章中的技术概念。然后再穿插一些为什么这样选择的原因。最后添加自己在这个技术实践的经历,也就是怎么做。

当初为什么要写这个必知必会呢?在中文的领域,像必知必会系列的知识,非常少。基本上,你只有去阅读相关的中文文档,才有可能找到。碰巧有一部分有人写了,但是大部分的文章,在我看来,大多数只是讲怎么做。但没有讲是什么,为什么这样做的原因。这样的话,我自己只好亲自动手写了。

写的这些技术知识都是我过去这些年的积累,所以写起来也很快。最终的目的是,一方面对相关的知识积累进行了复习,另外一方面方便自己查漏补缺,加强记忆。

阅读笔记

很多时候,我们都听过了很多大道理,却依然感叹没有过好这一生。经过反复思考后,我得出一个结论,其实我们也看过读过很多的书,也依然没有过好这一生。最终的根本原因,可能就是我们真的只是看看而已,并没有做阅读笔记,也没有去实践其中的道理。所以过不好这一生,也是情有可原的。

因为从阅读开始到现在,你根本就没有按照书中的道理去实践过啊。所以,我会总结自己看过,阅读过的文章,然后将自己的阅读笔记写出来。

比如我在看财富自由之路时,写了很多文章专栏阅读笔记。说实话,阅读笔记真的很难写。因为很多观点都不是自己的,所以最好是结合自己的实际经验来思考,输出自己的结论。比如我的阅读笔记:

  1. 你真的理解什么是财富自由吗?
  2. 出售时间之前你要牢记的三条铁律-读后感
  3. 我们重新理解了注意力-读后感

实践经历

这类文章的套路都是一样的。就是写你怎么践行的。可以写自己投资是如何亏钱的,也可以写当初立了多少无效的flag,甚至还可以写自己如何失败的。但文章最后一定要做总结,这样的话,对自己的践行进行反思。虽然我不知道如何才能成功,但起码我总结出如何才能失败的方法。比如我写了很多文章:

  1. 如何有效的践行ARTS
  2. 如何立一个无效的flag
  3. 作为PHP程序员,我是这样学习Go语言的

总结

在这篇文章里,我总结了3个写作的方法论。这些方法论不一定适合每个人,但也值得你去尝试。写作其实就是把一个概念或者方法论讲清楚的能力。刚开始,写对别人有用的东西,可能会比较难。但随着思考的深入,你一定可以收获对自己有用的部分。写作的核心在于思考与行动。你可以记录自己成长,学习,犯错,反思的经历。但你一定要有输入。没有输入的话,就一定没有输出。输入可以是你看到文章,自己的思考,工作经历,自己曾经犯的错误等等,只有这些宝贵的经历,经过你自己的思考,反思后得出的结论,才是最终的财富。

最后,借笑来的专栏文章几句话自勉:

写吧,只要真写就只能真思考。不要怕现在的自己的笨拙,重要的是未来的你一定不差,因为曾经的你,不怕自己差,不管多差也要硬着头皮实践,久而久之,你就撞见了未来那个一点都不差的你。但行好事,莫问前程。