随笔分类 - Kubernetes
摘要:[toc] Pod资源调度 API Server在接受客户端提交Pod对象创建请求后,然后是通过调度器(kube schedule)从集群中选择一个可用的最佳节点来创建并运行Pod。而这一个创建Pod对象,在调度的过程当中有3个阶段:节点预选、节点优选、节点选定,从而筛选出最佳的节点。如图: 节点预
阅读全文
摘要:[toc] Kubernetes的网络模型和网络策略 1、Kubernetes网络模型和CNI插件 在Kubernetes中设计了一种网络模型,要求无论容器运行在集群中的哪个节点,所有容器都能通过一个扁平的网络平面进行通信,即在同一IP网络中。需要注意的是:在K8S集群中,IP地址分配是以Pod
阅读全文
摘要:Kubernetes基础篇 | 环境说明 | 版本说明 | | | | | 系统环境 | Centos 7.2 | | Kubernetes版本 | v1.11.2 | | Docker版本 | v18.09 | "Kubernetes学习之路(一)之概念和架构解析和证书创建和分发" "Kubern
阅读全文
摘要:[toc] 一、看图说K8S 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念、组件以及网络模型。 从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕,我们从宏观上先了解K8S是怎么用的,再进行庖丁解牛。从上图我们可以看出: Kubernetes集群主要由Master和N
阅读全文
摘要:Dashboard:https://github.com/kubernetes/dashboard 一、Dashboard部署 由于需要用到k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0,这里有2种方式进行pull 镜像。docker search该镜像名
阅读全文
摘要:API Server作为Kubernetes网关,是访问和管理资源对象的唯一入口,其各种集群组件访问资源都需要经过网关才能进行正常访问和管理。每一次的访问请求都需要进行合法性的检验,其中包括身份验证、操作权限验证以及操作规范验证等,需要通过一系列验证通过之后才能访问或者存储数据到etcd当中。如下图
阅读全文
摘要:[toc] 一、statefulset简介 从前面的学习我们知道使用Deployment创建的pod是无状态的,当挂载了Volume之后,如果该pod挂了,Replication Controller会再启动一个pod来保证可用性,但是由于pod是无状
阅读全文
摘要:[toc] 一、存储卷的概念和类型 为了保证数据的持久性,必须保证数据在外部存储在 容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,数据依旧可以实现持久性存储。但是在 中,由于 分布在各个不同的节点之上,并不能实现不同节点之间持久性数据的共享,并且,在节点故障
阅读全文
摘要:[toc] 一、什么是Ingress? 从前面的学习,我们可以了解到 暴露服务的方式目前只有三种: ;而我们需要将集群内服务提供外界访问就会产生以下几个问题: 1、Pod 漂移问题 Kubernetes 具有强大的副本控制能力,能保证在任意副本(Pod)挂掉时自动从其他机器启动一个新的,还可以动态扩
阅读全文
摘要:一、Service的概念 运行在Pod中的应用是向客户端提供服务的守护进程,比如,nginx、tomcat、etcd等等,它们都是受控于控制器的资源对象,存在生命周期,我们知道Pod资源对象在自愿或非自愿终端后,只能被重构的Pod对象所替代,属于不可再生类组件。而在动态和弹性的管理模式下,Servi
阅读全文
摘要:一、什么是DaemonSet? DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 使用 Daemon
阅读全文
摘要:一、Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源。 pod控制器有多种类型: ReplicaSet: 代用户创建指定数量的pod副本数量,确保pod副本数量符合预期
阅读全文
摘要:一、Kubernetes常用资源 以下列举的内容都是 kubernetes 中的 Object,这些对象都可以在 yaml 文件中作为一种 API 类型来配置。 二、理解Kubernetes中的对象 在 Kubernetes 系统中,Kubernetes 对象 是持久化的条目。Kubernetes
阅读全文
摘要:一、什么是Pod? Pod是kubernetes中你可以创建和部署的最小也是最简的单位。一个Pod代表着集群中运行的一个进程。 Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能
阅读全文
摘要:一、CoreDNS部署 一、CoreDNS部署 在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问。 (1)编辑coredns.yaml文件 [root@linux-node1 ~]# vim coredns.ya
阅读全文
摘要:1、使用命令kubectl run创建应用 实用举例: 从上面创建的应用可以得知,nginx-deploy应用的pod的ip为10.244.2.2,这是一个pod ip,仅仅可以在集群内部访问,如下: 这里要注意的是pod的客户端有2类,1类是其他pod,1类是集群外部客户端,那么集群外部的客户端如
阅读全文
摘要:一、环境说明 (1)配置源 将源拷贝到node01和node02节点 (2)安装docker、kubelet、kubeadm、还有命令行工具kubectl 启动docker,docker需要到自动到docker仓库中所依赖的镜像文件,这些镜像文件会因为在国外仓库而下载无法完成,所以最好预先下载镜像文
阅读全文
摘要:一、Deployment的概念 一、Deployment的概念 K8S本身并不提供网络的功能,所以需要借助第三方网络插件进行部署K8S中的网络,以打通各个节点中容器的互通。 POD,是K8S中的一个逻辑概念,K8S管理的是POD,一个POD中包含多个容器,容器之间通过localhost互通。而POD
阅读全文
摘要:一、K8S的ip地址 Node IP:节点设备的IP,如物理机,虚拟机等容器宿主的实际IP。 Pod IP:Pod的IP地址,是根据docker0网络IP段进行分配的。 Cluster IP:Service的IP,是一个虚拟IP,仅作用于service对象,由K8S管理和分配,需要结合service
阅读全文
摘要:K8S Node节点部署 1、部署kubelet 1、部署kubelet kubelet启动时会向kube-apiserver发送tsl bootstrap请求,所以需要将bootstrap的token设置成对应的角色,这样kubectl才有权限创建该请求。 2、部署kubelet 1.设置CNI支
阅读全文