Xinkun Blog

科学引导思想 技术改变生活

解析docker中的环境变量使用和常见问题解决

Enviroment in docker.

docker容器中的环境变量 docker可以为容器配置环境变量。配置的途径有两种: 在制作镜像时,通过ENV命令为镜像增加环境变量。在容器启动时使用该环境变量。 在容器启动时候,通过参数配置环境变量,如果与镜像中有重复的环境变量,会覆盖镜像的环境变量。 使用docker exec {containerID} env即可查看容器中生效的环境变量。 [root@localh...

使用kubesql进行kubernetes资源查询

Use kubesql to query the resources of kubernetes.

kubesql kubesql(https://github.com/xuxinkun/kubesql)是我最近开发的一个使用sql查询kubernetes资源的工具。诸如node,pod等kubernetes的资源被处理为table。而后可以使用sql语句对其进行查询。 例如,所有pod都很容易从apiserver中获取。但是想要计算每个节点上的pod数量并不容易。但是使用了kubes...

docker和kubernetes中hostname的使用和常见问题

Use of hostname and common problems in docker and kubernetes.

hostname在docker中是使用UTS namespace进行隔离的。docker中主要有两种ns的用法, 一种是docker run --uts="" busybox。这种会新创建一个新的uts ns。 一种是docekr run --uts="host" busybox。这种创建的容器将会使用物理机的uts ns。 在k8s中,是这样处理的uts的ns的: fun...

使用grafana provisioning通过配置方式添加datasource和dashboard

Use grafana provisioning to add datasources and dashboards.

grafana provisioning grafana provisioning (http://docs.grafana.org/administration/provisioning/#provisioning-grafana)是grafana 5.0后引入的功能,用以支持通过配置的方式进行datasource和dashboard的配置。 要开启该功能,首先要在grafana的配置...

使用pynlpir增强jieba分词的准确度

Use pynlpir to enhance the accuracy of jieba participle.

在使用jieba分词时,发现分词准确度不高。特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机。这样导致的问题是很多时候检索并不准确。 经过对比测试,发现nlpir进行分词效果更好。但是nlpir的效率和各种支持又没有jieba那么好,因此采用了一种折中的方案。 就是先用nlpir生成字典,然后使用jieba利用字典进行分词。 首先安装pynlpir。pynlpir的相关说明可...

graph easy绘制ascii简易流程图

graph easy.

graph-easy 日常我们经常需要画一些简易流程图,但是如果使用visio等工具来作图,一则略显大材小用,二则图片导出后再要粘贴。相比下,如果可以简单的用一些text的图来表达,则会简单的多。比如这种: [root@host /]# echo '[kubectl],[kube-proxy],[kube-scheduler],[kube-controller],[kubelet]-&g...

kubernetes版本融合解决方案

kubernetes version fusion solution.

kubernetes版本融合背景 在kubernetes 1.6版本的基础上进行了深度的定制。而且该版本已经相当稳定。但是随着kubernetes版本迭代,后期使用的如service mesh/kubeflow项目依赖于高版本的kubernetes,比如1.8或者1.10以上的版本。这样就产生了一定的矛盾。直接将1.10的k8s合并到1.6上,成本很高,难度也很大。因此需要其他方案进行版本...

设计的一些kubernetes面试题目

kubernetes interview question.

这几个月参与了几场面试,设计了多道面试题,觉得可以综合考察应聘人对kubernetes的掌握情况。在这里分享下,供应聘人自查以及其他面试官参考。 这些面试题的设计初衷并不是考察kubernetes的使用。这种笔者认为较为流于表面,因为这些使用大多可以通过查看文档获得。笔者更多考察的是对于kubernetes的理解,包括对其架构、设计及一些相应原理的认识,以及对一些实践经验和技术视野的考察。...

使用go-template自定义kubectl get输出

Use go-template to customize kubectl get output.

kubectl get kubectl get相关资源,默认输出为kubectl内置,一般我们也可以使用-o json或者-o yaml查看其完整的资源信息。但是很多时候,我们需要关心的信息并不全面,因此我们需要自定义输出的列,那么可以使用go-template来进行实现。 go-template是golang的一种模板,可以参考template的相关说明。 比如仅仅想要查看获取的po...

docker、oci、runc以及kubernetes梳理

docker, oci runc and kubernetes.

容器无疑是近年来云计算中最火热的关键词。随着docker的大热,docker、oci、runc、containerd等等名词也逐渐传播开来。这么多的名词,也容易让人混淆。本文对相关名词和其之间的联系进行一下梳理和总结,方便大家更好地理解。 container 首先说的是container容器。随着docker的大热,docker的经典图标,一条鲸鱼拖着若干个集装箱的经典形象已经深入人心。...