ZWEI

Time flies.

Install docker-ce for Ubuntu/Debian

Uninstall old versions

1
sudo apt-get remove docker docker-engine docker.io containerd runc
阅读全文 »

1. kubelet简介

在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】架构中的agent,是Node上的pod管家。

更多kubelet配置参数信息可参考kubelet –help

阅读全文 »

Pod调度

在kubernetes集群中,Pod(container)是应用的载体,一般通过RC、Deployment、DaemonSet、Job等对象来完成Pod的调度与自愈功能。

阅读全文 »

Pod的配置管理

Kubernetes v1.2的版本提供统一的集群配置管理方案–ConfigMap。

1. ConfigMap:容器应用的配置管理

使用场景:

  1. 生成为容器内的环境变量。
  2. 设置容器启动命令的启动参数(需设置为环境变量)。
  3. 以Volume的形式挂载为容器内部的文件或目录。

ConfigMap以一个或多个key:value的形式保存在kubernetes系统中供应用使用,既可以表示一个变量的值(例如:apploglevel=info),也可以表示完整配置文件的内容(例如:server.xml=<?xml…>…)。

阅读全文 »

pod volume 使用

同一个Pod中的多个容器可以共享Pod级别的存储卷Volume,Volume可以定义为各种类型,多个容器各自进行挂载,将Pod的Volume挂载为容器内部需要的目录。

阅读全文 »

Linux中如何让进程(或正在运行的程序)到后台运行?

在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:

$ ./test.sh &
[1] 17208

$ jobs -l
[1]+ 17208 Running ./test.sh &
对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:

阅读全文 »

Pod健康检查

Pod的健康状态由两类探针来检查:LivenessProbeReadinessProbe

阅读全文 »

1. Pod的基本用法

1.1. 说明

  1. Pod实际上是容器的集合,在k8s中对运行容器的要求为:容器的主程序需要一直在前台运行,而不是后台运行。应用可以改造成前台运行的方式,例如Go语言的程序,直接运行二进制文件;java语言则运行主类;tomcat程序可以写个运行脚本。或者通过supervisor的进程管理工具,即supervisor在前台运行,应用程序由supervisor管理在后台运行。具体可参考supervisord
  2. 当多个应用之间是紧耦合的关系时,可以将多个应用一起放在一个Pod中,同个Pod中的多个容器之间互相访问可以通过localhost来通信(可以把Pod理解成一个虚拟机,共享网络和存储卷)。
阅读全文 »

K8S 的 pod eviction

K8S 有个特色功能叫 pod eviction,它在某些场景下如节点 NotReady,资源不足时,把 pod 驱逐至其它节点。本文首先介绍该功能,最后谈谈落地经验。

阅读全文 »
0%