06 2019 档案

A.浏览器访问 kube-apiserver 安全端口
摘要:A.浏览器访问 kube-apiserver 安全端口 浏览器访问 kube-apiserver 的安全端口 6443 时,提示证书不被信任:这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信 阅读全文

posted @ 2019-06-04 23:56 orsonchen 阅读(1088) 评论(0) 推荐(0)

12.清理集群
摘要:12.清理集群 清理 Node 节点 停相关进程: $ sudo systemctl stop kubelet kube-proxy flanneld docker $ 清理文件: $ # umount kubelet 挂载的目录 $ mount | grep '/var/lib/kubelet'| 阅读全文

posted @ 2019-06-04 23:54 orsonchen 阅读(157) 评论(0) 推荐(0)

11.部署 harbor 私有仓库
摘要:11.部署 harbor 私有仓库 本文档介绍使用 docker-compose 部署 harbor 私有仓库的步骤,你也可以使用 docker 官方的 registry 镜像部署私有仓库(部署 Docker Registry)。 使用的变量 本文档用到的变量定义如下: $ export NODE_ 阅读全文

posted @ 2019-06-04 23:53 orsonchen 阅读(869) 评论(0) 推荐(0)

10.部署私有 docker registry
摘要:10.部署私有 docker registry 注意:本文档介绍使用 docker 官方的 registry v2 镜像部署私有仓库的步骤,你也可以部署 Harbor 私有仓库(部署 Harbor 私有仓库)。 本文档讲解部署一个 TLS 加密、HTTP Basic 认证、用 ceph rgw 做后 阅读全文

posted @ 2019-06-04 23:51 orsonchen 阅读(717) 评论(0) 推荐(0)

09-5.部署 EFK 插件
摘要:09-5.部署 EFK 插件 EFK 对应的目录:kubernetes/cluster/addons/fluentd-elasticsearch $ cd /opt/k8s/kubernetes/cluster/addons/fluentd-elasticsearch $ ls *.yaml es- 阅读全文

posted @ 2019-06-04 23:49 orsonchen 阅读(597) 评论(0) 推荐(0)

09-4.部署 metrics-server 插件
摘要:09-4.部署 metrics-server 插件 创建 metrics-server 使用的证书 创建 metrics-server 证书签名请求: cat > metrics-server-csr.json <<EOF { "CN": "aggregator", "hosts": [], "ke 阅读全文

posted @ 2019-06-04 23:47 orsonchen 阅读(452) 评论(0) 推荐(0)

09-3.部署 heapster 插件
摘要:09-3.部署 heapster 插件 Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。 Heapster 是通过调用 kubelet 的 http API 来获取 cAdvisor 的 metrics 数据的。 由于 kub 阅读全文

posted @ 2019-06-04 23:46 orsonchen 阅读(211) 评论(0) 推荐(0)

09-2.部署 dashboard 插件
摘要:09-2.部署 dashboard 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar.gz 文件。 dashboard 对应的目录是:cluster/addons/dashboard。 阅读全文

posted @ 2019-06-04 23:45 orsonchen 阅读(495) 评论(0) 推荐(0)

09-1.部署 coredns 插件
摘要:09-1.部署 coredns 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar.gz 文件。 coredns 对应的目录是:cluster/addons/dns。 $ pwd /opt 阅读全文

posted @ 2019-06-04 23:43 orsonchen 阅读(346) 评论(0) 推荐(0)

08.验证集群功能
摘要:08.验证集群功能 本文档使用 daemonset 验证 master 和 worker 节点是否工作正常。 检查节点状态 $ kubectl get nodes NAME STATUS ROLES AGE VERSION kube-node1 Ready <none> 3h v1.10.4 kub 阅读全文

posted @ 2019-06-04 23:42 orsonchen 阅读(159) 评论(0) 推荐(0)

07-3.部署 kube-proxy 组件
摘要:07-3.部署 kube-proxy 组件 kube-proxy 运行在所有 worker 节点上,,它监听 apiserver 中 service 和 Endpoint 的变化情况,创建路由规则来进行服务负载均衡。 本文档讲解部署 kube-proxy 的部署,使用 ipvs 模式。 下载和分发 阅读全文

posted @ 2019-06-04 23:41 orsonchen 阅读(1259) 评论(0) 推荐(0)

07-2.部署 kubelet 组件
摘要:07-2.部署 kubelet 组件 kublet 运行在每个 worker 节点上,接收 kube-apiserver 发送的请求,管理 Pod 容器,执行交互式命令,如 exec、run、logs 等。 kublet 启动时自动向 kube-apiserver 注册节点信息,内置的 cadvis 阅读全文

posted @ 2019-06-04 23:14 orsonchen 阅读(649) 评论(0) 推荐(0)

07-1.部署 docker 组件
摘要:07-1.部署 docker 组件 docker 是容器的运行环境,管理它的生命周期。kubelet 通过 Container Runtime Interface (CRI) 与 docker 进行交互。 安装依赖包 参考 07-0.部署worker节点.md 下载和分发 docker 二进制文件 阅读全文

posted @ 2019-06-04 23:06 orsonchen 阅读(224) 评论(0) 推荐(0)

07-0.部署 worker 节点
摘要:kubernetes work 节点运行如下组件: docker kubelet kube-proxy 安装和配置 flanneld 参考 05-部署flannel网络.md 安装依赖包 CentOS: source /opt/k8s/bin/environment.sh for node_ip i 阅读全文

posted @ 2019-06-04 23:04 orsonchen 阅读(207) 评论(0) 推荐(0)

06-4.部署高可用 kube-scheduler 集群
摘要:06-4.部署高可用 kube-scheduler 集群 本文档介绍部署高可用 kube-scheduler 集群的步骤。 该集群包含 3 个节点,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态。当 leader 节点不可用后,剩余节点将再次进行选举产生新的 leader 阅读全文

posted @ 2019-06-04 23:01 orsonchen 阅读(267) 评论(0) 推荐(0)

06-3.部署高可用 kube-controller-manager 集群
摘要:06-3.部署高可用 kube-controller-manager 集群 本文档介绍部署高可用 kube-controller-manager 集群的步骤。 该集群包含 3 个节点,启动后将通过竞争选举机制产生一个 leader 节点,其它节点为阻塞状态。当 leader 节点不可用后,剩余节点将 阅读全文

posted @ 2019-06-04 22:56 orsonchen 阅读(288) 评论(0) 推荐(0)

06-2.部署 kube-apiserver 组件
摘要:06-2.部署 kube-apiserver 组件 本文档讲解使用 keepalived 和 haproxy 部署一个 3 节点高可用 master 集群的步骤,对应的 LB VIP 为环境变量 ${MASTER_VIP}。 准备工作 下载最新版本的二进制文件、安装和配置 flanneld 参考:0 阅读全文

posted @ 2019-06-04 22:47 orsonchen 阅读(307) 评论(0) 推荐(0)

06-1.部署高可用组件
摘要:06-1.部署高可用组件 本文档讲解使用 keepalived 和 haproxy 实现 kube-apiserver 高可用的步骤: keepalived 提供 kube-apiserver 对外服务的 VIP; haproxy 监听 VIP,后端连接所有 kube-apiserver 实例,提供 阅读全文

posted @ 2019-06-04 22:34 orsonchen 阅读(170) 评论(0) 推荐(0)

06-0.部署 master 节点
摘要:kubernetes master 节点运行如下组件: kube-apiserver kube-scheduler kube-controller-manager kube-scheduler 和 kube-controller-manager 可以以集群模式运行,通过 leader 选举产生一个工 阅读全文

posted @ 2019-06-04 22:28 orsonchen 阅读(182) 评论(0) 推荐(0)

05.部署 flannel 网络
摘要:05.部署 flannel 网络 kubernetes 要求集群内各节点(包括 master 节点)能通过 Pod 网段互联互通。flannel 使用 vxlan 技术为各节点创建一个可以互通的 Pod 网络。 flaneel 第一次启动时,从 etcd 获取 Pod 网段信息,为本节点分配一个未使 阅读全文

posted @ 2019-06-04 22:22 orsonchen 阅读(479) 评论(0) 推荐(0)

04.部署 etcd 集群
摘要:04.部署 etcd 集群 etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。 本文档介绍部署一个三节点高可用 etcd 集群 阅读全文

posted @ 2019-06-04 22:15 orsonchen 阅读(248) 评论(0) 推荐(0)

03.部署 kubectl 命令行工具
摘要:03.部署 kubectl 命令行工具 kubectl 是 kubernetes 集群的命令行管理工具,本文档介绍安装和配置它的步骤。 kubectl 默认从 ~/.kube/config 文件读取 kube-apiserver 地址、证书、用户名等信息,如果没有配置,执行 kubectl 命令时可 阅读全文

posted @ 2019-06-04 22:09 orsonchen 阅读(275) 评论(0) 推荐(0)

02.创建 CA 证书和秘钥
摘要:02.创建 CA 证书和秘钥 为确保安全,kubernetes 系统各组件需要使用 x509 证书对通信进行加密和认证。 CA (Certificate Authority) 是自签名的根证书,用来签名后续创建的其它证书。 本文档使用 CloudFlare 的 PKI 工具集 cfssl 创建所有证 阅读全文

posted @ 2019-06-04 22:04 orsonchen 阅读(362) 评论(0) 推荐(0)

01.组件版本和集群环境
摘要:01.系统初始化和全局变量 集群机器 kube-node1:192.168.1.106 kube-node2:192.168.1.107 kube-node3:192.168.1.108 本着测试的目的,etcd 集群、kubernetes master 集群、kubernetes node 均使用 阅读全文

posted @ 2019-06-04 21:36 orsonchen 阅读(251) 评论(0) 推荐(0)

23.kubernetes 组件版本和配置策略
摘要:00.组件版本和配置策略 组件版本 Kubernetes 1.10.4 Docker 18.03.1-ce Etcd 3.3.7 Flanneld 0.10.0 插件: Coredns Dashboard Heapster (influxdb、grafana) Metrics-Server EFK 阅读全文

posted @ 2019-06-04 21:32 orsonchen 阅读(190) 评论(0) 推荐(0)

22.Kubernetes Ingress: HTTP 7层路由机制
摘要:Kubernetes 暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、Ingress;下面详细的了解下Ingress。 根据前面对 Service 的使用说明,我们知道 Service 的表现形式为IP:Port,工作在TCP/IP层,而对于基于 阅读全文

posted @ 2019-06-04 21:28 orsonchen 阅读(817) 评论(0) 推荐(0)

21.Kubernetes之ConfigMap
摘要:应用部署的一个最佳实践是将应用所需的配置信息于程序进行分离,这样可以使得应用程序被更好的复用,通过不用配置文件也能实现更灵活的功能。将应用打包为容器镜像后,可以通过环境变量或外挂文件的方式在创建容器时进行配置注入。ConfigMap是Kubernetes v1.2版本开始提供的一种统一集群配置管理方 阅读全文

posted @ 2019-06-04 21:27 orsonchen 阅读(302) 评论(0) 推荐(0)

20.Kubernetes共享存储
摘要:Kubermetes对于有状态的容器应用或者对数据需要持久化的应用,不仅需要将容器内的目录挂载到宿主机的目录或者emptyDir临时存储卷,而且需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后,仍然可以使用之前的数据。不过,存储资源和计算资源(CPU/内存)的管理方式完全不同。为了 阅读全文

posted @ 2019-06-04 21:26 orsonchen 阅读(556) 评论(0) 推荐(0)

19.Kubernetes深入Pod之容器共享Volume
摘要:Pod容器共享Volume 在同一个Pod中多个容器能够共享Pod级别的存储卷Volume,如图: 在下面的例子中,Pod内包含两个容器:tomcat和busybox,在Pod级别设置Volume“app-logs”,用于tomcat向其中写日志文件,busybox读取日志文件 配置文件pod-vo 阅读全文

posted @ 2019-06-04 21:24 orsonchen 阅读(392) 评论(0) 推荐(0)

18.Kubernetes深入Pod之静态Pod
摘要:静态Pod 静态Pod是由kubectl进行管理的仅存于特定Node上的Pod。他们不能通过API Server惊醒管理,无法与ReplicationController、Deployment或者DaemonSet进行关联,并且kubelet也无法对他们进行健康检查。静态Pod总是由kubectl进 阅读全文

posted @ 2019-06-04 21:23 orsonchen 阅读(411) 评论(0) 推荐(0)

17.Kubernetes深入Pod
摘要:本节将对kubernetes如何发布和管理应用进行说明和示例,主要包括Pod和容器的使用、Pod的控制和调度、应用配置管理等内容。 1.Pod定义详解 yaml格式的Pod定义文件的完整内容: apiVersion: v1 kind: Pod metadata: name: string names 阅读全文

posted @ 2019-06-04 21:23 orsonchen 阅读(156) 评论(0) 推荐(0)

16.Kubernetes之Deployment
摘要:Deployment在继承Pod和Replicaset的所有特性的同时, 它可以实现对template模板进行实时滚动更新并具备我们线上的Application life circle的特性。 1.创建Deployment # vi deployment.yaml apiVersion: apps/ 阅读全文

posted @ 2019-06-04 21:22 orsonchen 阅读(188) 评论(0) 推荐(0)

15.Kubernetes之ReplicaSet
摘要:Replicaset在继承Pod的所有特性的同时, 它可以利用预先创建好的模板定义副本数量并自动控制, 通过改变Pod副本数量实现Pod的扩容和缩容 缺点: 无法修改template模板, 也就无法发布新的镜像版本 1.创建Replicaset # vi replicaset.yaml apiVer 阅读全文

posted @ 2019-06-04 21:21 orsonchen 阅读(109) 评论(0) 推荐(0)

14.Kubernetes之Pod
摘要:Pod是一组紧密关联的容器集合,它们共享PID、IPC、Network和UTS namespace,是Kubernetes调度的基本单位。Pod的设计理念是支持多个容器在一个Pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。 缺点: 不支持高并发, 高可用, 当 阅读全文

posted @ 2019-06-04 21:20 orsonchen 阅读(112) 评论(0) 推荐(0)

13.Kubernetes小结
摘要:Kubernetes主要由以下几个核心组件组成: etcd保存了整个集群的状态; apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源 阅读全文

posted @ 2019-06-04 21:18 orsonchen 阅读(180) 评论(0) 推荐(0)

12.Kubernetes Annotation(注解)
摘要:Annotation与Label类似,也使用key/value键值对的形式进行定义。不同的是Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(Metadata),并且用于Label Selector。而Annotation则是用户任意定义的“附加”信息,以便于外部工具进行查找 阅读全文

posted @ 2019-06-04 21:17 orsonchen 阅读(802) 评论(0) 推荐(0)

11.Kubernetes Namespace介绍
摘要:Namespace(命名空间)是Kubernetes系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离。Nameaspace通过将集群内部的资源对象“分配”到不同的Namespce中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同 阅读全文

posted @ 2019-06-04 21:16 orsonchen 阅读(211) 评论(0) 推荐(0)

10.Kubernetes存储之persistent volumes简介
摘要:说明 管理存储和管理计算有着明显的不同。PersistentVolume给用户和管理员提供了一套API,抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和PersistentVolumeClaim(简称PVC)。 Persistent 阅读全文

posted @ 2019-06-04 21:15 orsonchen 阅读(1303) 评论(0) 推荐(0)

9.Kubernetes Volume(存储卷)
摘要:Volume是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。首先,Kubernetes中的Volume定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下;其次,Kubernetes中的Vo 阅读全文

posted @ 2019-06-04 21:14 orsonchen 阅读(187) 评论(0) 推荐(0)

8.Kubernetes Service(服务)
摘要:1.概述 Service也是Kubernetes里的最核心的资源对象之一,Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个“微服务”,之前我们所说的Pod、RC等资源对象其实都是为这节所说的“服务” Kubernetes Service作“嫁衣”的。图1.12显示了 阅读全文

posted @ 2019-06-04 21:13 orsonchen 阅读(269) 评论(0) 推荐(0)

7.Kubernetes StatefulSet介绍
摘要:在Kubernetes系统中,Pod的管理对象RC、Deployment、DaemonSet和Job都是面向无状态的服务。但现实中有很多服务是有状态的,特别是一些复杂的中间件集群,例如MySQL集群、MongoDB集群、Kafka集群、Zookeeper集群等,这些应用集群有以下一些共同点。 每个节 阅读全文

posted @ 2019-06-04 21:12 orsonchen 阅读(158) 评论(0) 推荐(0)

6.kubernetes自动扩容之Horizontal Pod Autoscaling(HPA)
摘要:我们通过手动执行kubectl scale命令,可以实现Pod扩容。但是,分布式系统要能够根据当前负载的变化情况自动触发水平扩展或缩容的行为,因为这一过程可能是频繁发生的、不可预料的,所以手动控制的方式是不现实的。 因此,在Kubernetes1.1版本中首次发布了这一重量级新特性 Horizont 阅读全文

posted @ 2019-06-04 21:11 orsonchen 阅读(321) 评论(0) 推荐(0)

5.Kubernetes Deployment介绍
摘要:Deployment是Kubernetes v1.2引入的概念,引入的目的是为了更好地解决Pod的编排问题。为此,Deployment在内部使用了Replica Set来实现目的,无论从Deployment的作用与目的,它的YAML定义,还是从它的具体命令行操作来看,我们都可以把它看作RC的一次升级 阅读全文

posted @ 2019-06-04 21:10 orsonchen 阅读(250) 评论(0) 推荐(0)

4.kubernetes 之Replication Controller
摘要:上一节的例子中已经对Replication Controller(简称RC)的定义和作用做了一些说明,本节对RC的概念进行深入描述。 RC是Kubernetes系统中的核心概念之一,简单来说,它其实是定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,所以RC的定义包括如下几 阅读全文

posted @ 2019-06-04 21:09 orsonchen 阅读(220) 评论(0) 推荐(0)

3.kubernetes Laebl(标签)
摘要:Label是Kubernetes系统中另外一个核心概念。一个Label是一个key=value的键值对,其中key与vaue由用户自己指定。Label可以附加到各种资源对象上,例如Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数 阅读全文

posted @ 2019-06-04 21:08 orsonchen 阅读(229) 评论(0) 推荐(0)

2.kubernetes Pod介绍
摘要:Pod是Kubernetes的最重要也最基本的概念,如图所示是Pod的组成示意图,我们看到每个Pod都有一个特殊的被成为“根容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或多个紧密相关的用户业务容器。 为什么Kubern 阅读全文

posted @ 2019-06-04 21:06 orsonchen 阅读(267) 评论(0) 推荐(0)

1 Kubernetes管理之master和Node
摘要:Kubernetes中的大部分概念如Node、Pod、Replication Controller、Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。从这 阅读全文

posted @ 2019-06-04 21:03 orsonchen 阅读(471) 评论(0) 推荐(0)

导航