使用EFK收集Kubernetes多集群日志

使用EFK收集Kubernetes多集群日志 Collecting logs for multi kubernetes clusters with EFK 在有多个集群的情况下,一个集群就搭建一套日志收集分析服务实在太浪费。因此可以尝试只跑一套Elasticsearch和Kibana实例,然后让各个集群中的日志收集器向Elasticsearch发送日志。 如图所示: Elasticsearch和Kibana可以放在Kubernetes集群中也可以独立部署。这里为了方便就选择独立部署. 部署ElasticSearch和Kibana Elastic 自建了 docker 镜像仓库,因此到https://www.docker.elastic.co/拉去最新的 Elasticsearch 和 Kibana 的镜像. 然后编写docker-compose.yaml文件. 关于详细配置,参考官方文档: Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/master/docker.html Kibana: https://www.elastic.co/guide/en/kibana/master/docker.html version: ‘2’ services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.4.0 restart: unless-stopped … “使用EFK收集Kubernetes多集群日志”

Read More

构建Flutter Android编译环境的Jenkins Slave

曾经给公司搞了个 Android 编译环境的 Docker 镜像,但是时间比较早,大概是17年5/6月,当时还加入 Node.JS 和 Cordova ,构建出来的镜像的 Size 非常巨大,达到了 3.7 G,于是想趁着添加 Flutter 的环境,重新搞一个,这里记录下. FROM jenkins/jnlp-slave:latest # 官方使用的jenkins用户没有太多权限,这里用root USER root # 抛弃 Android 4.4 版本之前的API SDK ARG ANDROID_APIS=”android-20,android-21,android-22,android-23,android-24,android-25,android-26,android-27,android-28″ ARG ANDROID_BUILD_TOOLS_VER=28.0.2 ARG ANDROID_SDK_TOOLS_VER=4333796 ARG FLUTTER_VER=0.7.3 … “构建Flutter Android编译环境的Jenkins Slave”

Read More

MacOS 下登陆私有Docker 仓库并拉取镜像

在mac下,并不存在/etc/docker/certs.d文件夹,虽然可以手动创建,但即便将自己私有仓库的CA证书放入,仍旧提示x509: certificate signed by unknown authority错误. 因此可以在图形界面打开Docker.app-Preferences-Daemon在Insecure registries栏中填入私有仓库的doman:port.这样便可以直接拉去公开的镜像.但若要拉去私有镜像,则必须先登录,此时便有可能遇到如下错误: Error saving credentials: error storing credentials – err: exit status 1, out: `User interaction is not allowed.` 有两种方法可以解决这个情况: 在图形界面打开Docker.app-Preferences-General,取消勾选的Securely store Docker logins in macOS keychain,此后的登陆便不会验证证书. 在launchpad中搜索Keychain Access并打开,然后在搜索栏中搜索仓库的证书,关键字为仓库的domain. … “MacOS 下登陆私有Docker 仓库并拉取镜像”

Read More

关于 IPVS 以及部署Kubernetes 1.9.2 并启用IPVS和CoreDNS

IPVS简介 IPVS 即IP Virtual Server. 是基于Netfilter,用于IP层(三层)的负载均衡. 它是专门为负载均衡设计的,其底层使用哈希表数据结构,数据处理高效,并且允许无限扩容. IPVS 的架构主要有IP包处理, 负载均衡算法, 参数配置管理这三个模块以及虚拟服务器与真实服务器链表(iptables)组成.可以说 IPVS 它依赖 iptables. 但 IPVS 模式承诺比 iptables 模式有更加高效的性能,也能支持更加庞大的集群. 在 Kubernetes 1.8 的时候,官方加入了 IPVS的支持(alpha). 上周发布的 1.9 中,已经将该特性置为 beta,但默认是 false,需要手动开启. 部署 整体部署的流程和之前写过的 创建基于Fannel网络的Kubernetes 1.7.6 类似,依旧是三个 Master,同时也做 … “关于 IPVS 以及部署Kubernetes 1.9.2 并启用IPVS和CoreDNS”

Read More

解决容器构建错误 E: List directory /var/lib/apt/lists/partial is missing. – Acquire (13: Permission denied)

使用Dockerfile构建一个镜像,如果使用的base image 设置了USER项,则之后的所有构建动作则切换到了USER指定的用户,且docker run该镜像后的用户也是USER指定的用户。 因此为了在base image上继续添加构建动作,则可以使用USER root切换到root用户执行构建,再在构建结束时使用USER someone切换为原用户. FROM someimage … … USER root … USER someone …

Read More

理解 Kubernetes的RBAC

前些天撸了Kubernetes 1.6 和 1.7 两个版本, 发现官方对它最大的改进在于权限. 自版本 1.6 起,Kubernetes 默认由 RBAC 授权. 在kube-apiserver这个服务的配置项中,有一参数项为–authorization-mode,这便是设置授权的模式,值项有: AlwaysAllow 总是允许 AlwaysDeny 总是拒绝 ABAC 基于属性的权限验证 Webhook 基于网络事件的回调钩子 RBAC 基于角色的权限验证 Node 基于节点验证. Kubernetes 1.7 新增 其他的不是重点,这里只需要理解 RBAC 这个权限授权模式. 之前发布的 1.8 的 alpha2 … “理解 Kubernetes的RBAC”

Read More

创建基于Calico网络的Kubernetes 1.7.6

Calico 网络的部署类似之前的 Flannel 网络,只需替换掉 Flannel,其他都无需修改便可生效. 准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 系统为 CentOS 7 ,需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: … “创建基于Calico网络的Kubernetes 1.7.6”

Read More

创建基于Fannel网络的Kubernetes 1.7.6

准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 系统为 CentOS 7 ,需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: # master1 hostnamectl –static set-hostname … “创建基于Fannel网络的Kubernetes 1.7.6”

Read More