
kubernetes/docker
文章平均质量分 70
疯琴
这个作者很懒,什么都没留下…
展开
-
Kubernetes 集群DNS选择:CoreDNS vs Kube-DNS
在二进制部署 Kubernetes 集群时,最后一步是部署 DNS,有两个选项:CoreDNS 和 Kube-DNS,二者主要有什么区别,如何选择呢?CoreDNS 和 Kube-DNS 作为 Kubernetes 集群的 DNS 服务提供者,在做用和完成的工作上是完全相同的。二者在实现上有一些不同,这导致了在资源消耗和性能上的差异。主要有:CoreDNS 每个实例只有一个容器,而 Kube-DNS 有三个Kube-DNS 使用 dnsmasq 进行缓存,这是一个 C 线程。Core-DNS 使用原创 2021-07-17 08:26:25 · 1829 阅读 · 0 评论 -
部署 etcd 3 节点集群
1. 准备csr文件etcd-csr.json{ "CN": "etcd", "hosts": [ "127.0.0.1", "192.168.220.121", "192.168.220.122", "192.168.220.123" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "CN": "CN", "ST": "BeiJing"原创 2020-06-14 16:45:55 · 1062 阅读 · 0 评论 -
kubernetes kubectl 签名TLS证书
kubernetes 集群可以为证书签名,用于集群内部的TLS通信,ca就是集群的ca,每个pod里面serviceaccount的secret都带着。1. 创建证书签名请求-csr$ cat <<EOF | ./cfssl genkey - | ./cfssljson -bare server{ "hosts": [ "nginx.default.svc.cluster.local" ], "CN": "nginx.default.svc.cluster.local"原创 2020-06-04 17:03:00 · 1108 阅读 · 0 评论 -
kubernetes 部署 https 服务器
创建ca证书签名请求文件ca-cst.json{ "CN": "www.abc.com", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "yngwie", "OU": "ops" } ]}生成ca证书和私钥../cfs.原创 2020-05-18 21:52:37 · 587 阅读 · 0 评论 -
Kubernetes 污点和容忍
Node affinity: pod 亲和节点Taints: 节点驱逐pod一个node可以设置多个污点,不容忍污点的pod不能调度到这个节点,容忍度设置给pod,这样的pod允许但不是必须调度到有这些污点的node。概念添加污点kubectl taint nodes <node-name> key=value:NoSchedule删除污点kubectl taint...翻译 2020-05-06 20:59:03 · 1394 阅读 · 0 评论 -
Kubernetes Pod 关闭流程
翻译自官方文档用户发送delete pod命令,grace period 参数即宽限期(假设为30秒)API Server 更新 pod 的宽限期字段执行pod get 命令显示pod状态变为Terminating与3同时,kubelet看到pod被标识了deleteTimestamp也就是标识为Terminating,它开始执行关闭pod流程:如果pod中的一个容器定义了 preS...原创 2020-05-06 10:23:26 · 4447 阅读 · 0 评论 -
Kubernetes API 的访问控制
翻译自官方文档用户使用 kubectl 或 REST 请求访问 API、客户端库。人类用户和service account 二者可以授权访问 API。当请求到达API,它经过若干步骤。传输安全典型的 Kubernetes 集群中,API Server 位于6443端口。API Server 出示证书。此证书通常是自签名的,所以用户机器上的$USER/.kube/config通常包含API ...翻译 2020-05-05 12:30:57 · 1000 阅读 · 0 评论 -
Prometheus 拉取模式的扩展性
首先,官方文档的 FAQ 是这么解释为何使用拉取(pull)而不是推送(push)模式:可以在笔记本上监控开发时产生的变更如果监控目标宕了可以更容易发现可以通过web浏览器手工访问监控目标并检查其健康状况总之我们认为拉取比推送好一点点,但是这并不一个监控系统需要考虑的重点。下文是一篇 Prometheus 官方博客的阅读笔记。有些人认为拉取模式是无法扩展的,然而这和我们的实践经...原创 2020-05-02 08:26:00 · 2334 阅读 · 0 评论 -
使用Linux 网桥手工搭建docker容器网络
运行容器,在busybox里添加静态路由要求有真正的root权限,所以要加--privileged=true$ docker run --rm --name box1 -d --net none --privileged=true busybox sleep 9999$ docker run --rm --name box2 -d --net none --privileged=tru...原创 2020-04-19 20:07:44 · 501 阅读 · 0 评论 -
Pod 生命周期
翻译官方文档文章目录Pod 阶段Pod 状态(conditions)容器探针pod和容器 status容器 statespod就绪gate重启策略pod 生命周期Pod 阶段Pending 下载镜像Running 全部pod已经绑定节点,全部镜像已经创建。至少一个容器正在运行或者正在启动/重启Succedded 全部容器成功终止,不会重启Failed 所有容器都终止了,至少一个容器因...翻译 2020-04-10 10:36:55 · 744 阅读 · 0 评论 -
Prometheus 查询语言 PromQL 的 CPU 使用率计算方法
CPU 使用率的计算方法翻了几篇 Prometheus 的 PromQL 查询 cpu 使用率的文章,说得都不是特别透,结合一篇英文文章终于搞明白了怎么计算这个指标。cpu 模式一颗 cpu 要通过分时复用的方式运行于不同的模式中,可以类比为让不同的人使用 cpu,张三使一会儿,李四使一会儿。这些模式可以用 top 命令查看,包括:us:用户进程使用cpu的时间sy:内核进程使用cpu...原创 2020-03-26 16:21:13 · 23029 阅读 · 6 评论 -
Kubernetes 监控体系基本结构
实验环境三节点 Kubernetes 1.17.2192.168.220.110 kmaster192.168.220.111 knode1192.168.220.112 knode2组件Prometheus:收集、查询、分析、存储监控数据,触发告警,部署方式为 deploymentGrafana:图形化展示监控数据,部署方式为 deploymentAlertmanager...原创 2020-03-04 17:29:51 · 502 阅读 · 0 评论 -
Go 库学习:Cobra
https://github.com/spf13/cobraKubernetes、Docker、etcd 等很多著名的项目使用 Cobra 构建其命令行接口。概述Cobra 库提供简单的接口来创建类似 git 和 go tools 的强大的现代命令行接口。主要功能:基于子命令的 CLI,如 app server、app fetch完全符合 POSIX 标准的参数标志(长短标志都支持)...原创 2020-03-01 21:07:21 · 389 阅读 · 1 评论 -
Alertmanager 官方文档翻译
原文略有删节告警概述Prometheus 的告警分为两部分。Prometheus server 内的告警规则将告警发送到 Alertmanager,后者处理这些告警,包括沉默、抑制、聚合以及通过邮件、在线通知系统和即时通讯工具等方法发送通知。设置告警和通知的主要步骤如下:设定和配置 Alertmanager配置 Prometheus 与 Alertmanager 通信在 Promet...翻译 2020-02-28 10:03:45 · 3673 阅读 · 0 评论 -
解决 Grafana 只能显示 pod_name 和 container_name 而没有具体的名字问题
我的 grafana 版本是 6.6.2,Kubernetes 版本是 1.17.2,不能显示具体的 Pod 名称,只有一个 pod_name查了一下原因是 Kubernetes 1.16 以后不再使用 pod_name 和 container_name 标签,解决办法是下载 grafana dashboard 的 json 文件,将里面的 pod_name 和 container_name ...原创 2020-02-26 15:39:05 · 2240 阅读 · 0 评论 -
CentOS 7.5 使用 kubeadm 安装 Kubernetes 1.17.2
环境三台 vmware 虚拟机操作系统:CentOS 7.5 Minimal全程使用 root 用户安装准备关闭防火墙、SELinux 和 swapsystemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i --follow-symlinks 's/SELINUX=enforcing/SEL...原创 2020-01-31 15:58:21 · 2110 阅读 · 0 评论 -
CI/CD:使用 Jenkins 的 Pipeline 测试 python 程序并制作 docker 镜像
上文书实践了 Jendkins 的 freestyle 项目,这次使用 pipeline 进行测试和构建打包加入自动单元测试启动 Jenkins 的 docker 以后,freestyle 是通过执行 shell 命令来逐步实现测试、构建和打包的,shell 命令是在 Jenkins 的 docker 容器内执行的,如果要将应用打成 docker 镜像,需要将宿主机的 docker 命令和 s...原创 2020-01-25 11:32:07 · 1006 阅读 · 0 评论 -
CI/CD:用 Jenkins 通过 Git Push 触发自动制作 Flask 项目的 Docker 镜像
Flask 项目文件$ tree flask_docker_jenkins_demo/flask_docker_jenkins_demo/├── Dockerfile├── README.md└── app.pyapp.pyfrom flask import Flask, jsonifyapp = Flask(__name__)@app.route('/')def he...原创 2020-01-23 15:40:40 · 593 阅读 · 0 评论 -
用于人脸识别的深度学习容器环境:docker+cuda+python3.6+opencv+dlib+keras
Nvidia容器运行时Nvidia容器运行时支持GPU,可以方便的构建和部署容器化的使用GPU加速的应用程序,就是在docker引擎外面包裹了一层,可以在docker里支持GPU的驱动。安装跟着官网的说明就可以顺利完成。Nvidia docker镜像Nvida把cuda的docker镜像也做好了,直接从dockerhub下载就可以,当时的tensorflow不支持更高的cuda版本,nv...原创 2019-06-03 11:25:15 · 1382 阅读 · 0 评论 -
Centos 7.3 使用kubeadm部署kubernetes
文章目录系统配置安装步骤1. 系统配置2. 安装docker,kubernetes3. 初始化master结点4. 部署网络插件Weave5. 部署dashboard6. 部署存储插件系统配置2CPU 2G Centos7.4master结点要求2C2G安装步骤1. 系统配置# 关闭防火墙systemctl stop firewalldsystemctl disable fir...原创 2019-01-14 15:47:34 · 504 阅读 · 0 评论 -
Raft算法论文翻译
raft算法的基础部分,基于自己的理解翻译了比较主要的部分。5.1 Raft 基础一个Raft集群通常有5个结点,可以容许两个结点失效。任一时刻某个结点只能有leader、follower和candidate三种角色中的一种。正常情况下只有一个leader,其他的都是follower。followers是被动的,他们不能主动发出请求,但是可以相应leader和candidates的请求。lea...翻译 2019-01-18 11:43:27 · 550 阅读 · 0 评论 -
docker + openvswitch 宿主机网络与docker互通
安装OVS 2.5.1Install the requisite packages.#yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget...原创 2019-01-17 17:55:36 · 1023 阅读 · 0 评论