一.Python 应用案例环境 [root@k8s-node1 Flask]# pwd /opt/Dockerfile/Flask [root@k8s-node1 Flask]# ll total 12 -rw-r--r-- 1 root root 352 Feb 1 10:08 app.py -rw-r--r-- 1 root root 518 Feb 1 10:20 Dockerfile -rw-r--r-- 1 root root 6 Feb 1 10:09 requirements.tx…
一.容器里的进程看到的文件系统又是什么样子呢? 1.你会看到好多宿主机的文件 [root@k8s-master ~]# vim ns.c [root@k8s-master ~]# gcc -o nl nl.c [root@k8s-master ~]# ll total 20 drwxr-xr-x 5 root root 4096 Jan 30 10:00 2019-1-30 -rwxr-xr-x 1 root root 8824 Jan 30 10:01 ns -rw-r--r-- 1 root…
一.关于Kubernetes初学的疑惑 就在这场因"容器"而起的技术变革中,kubernetes项目已经成为容器技术的事实标准,重新定义了基础设置领域对应用编排与管理的种种可能 1.为什么容器里只能跑“一个进程”?2.为什么我原先一直在用的某个 JVM 参数,在容器里就不好使了?3.为什么 Kubernetes 就不能固定 IP 地址?容器网络连不通又该如何取Debug?4.Kubernetes 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 这些概念…
01 初出茅庐 1.PaaS 项目被大家接纳的一个主要原因? 就是它提供了一种名叫"应用托管". 2.像 Cloud Foundry 这样的 PaaS 项目,最核心的组件是? 一套应用的打包和分发机制 3.Docker 镜像解决的? 恰恰就是打包这个根本性的问题 4. Docker 镜像的精髓? 你完全不需要进行任何配置或者修改,因为这个压缩包赋予了你一种极其宝贵的能力:本地环境和云端环境高度一致!这,正是 Docker 镜像的精髓. docker项目给PaaS世界带来的"降…
05 :从进程说起 1.容器本身没有价值,有价值的是"容器编排" 2.什么是进程? 一旦"程序"被执行起来,它就从磁盘上的二进制文件,变成 1.计算机内存中的数据 2.寄存器里的值 3.堆栈中的指令 4.被打开的文件 5.以及各种设备的状态信息的一个集合. 像这样一个程序运行起来后的计算机执行环境的综合,就是我们今天的主角:进程 3.容器技术的核心功能: 1.就是通过约束和修改进程的动态表现,从而为其创造出一个"边界" 2.Cgroups 技术是…
个人笔记,仅本人查阅使用,不保证正确. 零.微服务 微服务架构专注于应用解耦合,通过将应用彻底地组件化和服务化,每个微服务只包含一个非常小的功能,比如权限管理.日志收集等等.由这一组微服务组合起来,提供一个应用的完整功能. 这样的好处是: 开发更方便了.各微服务不再需要关注其他服务内的细节,直接调用 API 就行. 方便持续集成.升级只需要重新部署更新了的微服务,不需要更新整个应用. 方便拓展.遇到性能瓶颈时,只需要拓展瓶颈所在的微服务,不需要拓展整个应用. 当然,这也带来了一些难点: 业务型微…
概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod,再删除旧Pod.可以一次性创建全部,再删除全部,也可以逐渐创建删除.好处是应用一直可用,缺点是要同时支持两个版本. 蓝绿部署 对于应用的版本v1和版本v2: 在运行v1前,流量一直都在v2上 部署v1,然后测试通过后,将流量切换到v2,v2就成为了新的生产环境 一旦v2出现问题,可以在切回v1 金…
微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器…
服务介绍 服务是一种为一组相同功能的pod提供单一不变接入点的资源.当服务存在时,他的IP和端口不会改变.客户端通过IP和端口建立连接,这些连接会被路由到任何一个pod上.如此,客户端不需要知道每个单独提供服务的pod地址,这些pod也可以随时被创建.删除. 与ReplicationController一样,服务通过标签选择器决定管理哪些pod. 准备镜像 首先要准备一个能够提供web服务的镜像,作者将镜像存储到了阿里云的镜像仓库,读者可以跳过构建过程相关过程,直接使用作者构建好的镜像(但是不建…
前言:笔记知识点来源于Kubernetes官方文档说明,链接:https://kubernetes.io/docs/concepts/overview/components/ ,本记录仅仅是学习笔记记录,也可能存在错误!!! 一个Kubernetes集群是由工作机器集组成,一个工作机器可以称为一个节点node,集群上至少运行一个工作节点.一个节点(node)是运行了容器化应用的机器(实体机或虚拟机).工作节点(node)托管作为应用程序工作的Pods,Pods可以理解是运行一个或多个容器的程序集…
http://chenzhou123520.iteye.com/category/196061 转载 JVM学习笔记(一):运行时数据区 JVM学习笔记(二):JVM中对象访问的两种方式 JVM学习笔记(三):JVM的垃圾回收 JVM学习笔记(四):Class文件结构 JVM学习笔记(五):根据字节码指令介绍方法执行流程 JVM学习笔记(六):类加载的时机 JVM学习笔记(七):类加载的过程…
本节将会涉及Docker的镜像操作. 1. 获取镜像 如何获取Docker Hub上的镜像?可通过docker pull命令获取,其格式为: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签],具体可通过docker pull --help命令查看. Docker镜像仓库地址的格式一般为<域名/IP>[:端口号],仓库名一般为两段式名称,即<用户名>/<软件名>,对于Docker Hub,默认的用户名为library…
我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前两次我们分享了简单工厂模式,和工厂方法模式,这一次我们接着来分享抽象工厂模式 抽象工厂模式 抽象工厂模式(Abstract Factory): 通过对类的工厂抽象使其业务用于对产品类簇的创建,而不负责创建某一类产品的实例. 在了解抽象工厂模式前,我们要先了解一下如何在JavaScript中实现抽象类.…
https://www.bilibili.com/video/BV1w4411y7Go?p=1 一.K8s介绍 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈. 1.1 发展经历 基础设施级服务 iaas :阿里云 平台设施级服务 paas :新浪云 软件设施级服务 saas :Office365 资源管理器: 前生: Apache:MESOS - 分布式系统内核 .分布式资源管…
docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(KVM,XEN): docker可以更加灵活的去实现一些应用层功能, 同时对资源的利用率也更高 相对应用: docker可以把应用更操作系统(镜像)做更好的结合, 降低部署与维护的的成本 处于这样一个位置在单机使用docker进行业务部署是可以感觉到质的提升; 但是针对跨机器, 大规模, 需要对业务质量进行保证的时候, docker本身又有些不足, 而传统的运维自动化工具无论是在do…
文章目录 (1)创建app (2)创建app的docker镜像 (3)部署app到k8s (4)参考资料 前面一篇文章部署好了minikube环境,这次学习下怎么部署app到kubernetes环境当中去.参考的是官网的教程,稍微做了一点改动,为了进一步熟悉go和docker,这里我把教程中的js换成了go,其他学习的朋友可以改成Python,java等其他语言,进行学习. (1)创建app 这里写了一个简单的hello kubernetes的简单server.go. package main…
前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群". kubernetes 安装方式面面观 kubernetes 是一个组件化的系统,安装过程有很大的灵活性,很多组件都有多种实现,这些实现各有特点,让初学者眼花缭乱. 而且要把这些组件一个个安装配置好并且能协同工作,也是很不容易的. 因此社区出现了各种各样的安装方案.安装方案如此之多,以致于我不晓得该用哪…
介绍 https://minikube.sigs.k8s.io/docs/ Minikube 用于快速在本地搭建 Kubernetes 单节点集群环境,它对硬件资源没有太高的要求,方便开发人员学习试用,或者进行日常的开发. 其支持大部分kubernetes的功能,列表如下 DNS NodePorts ConfigMaps and Secrets Dashboards Container Runtime: Docker, and rkt Enabling CNI (Container Networ…
前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://minikube.sigs.k8s.io/docs/start/ ,使用此文档教程之前请确保已经安装了容器引擎,如Docker,并且要确保CPU核心数是双核及以上,不然会报错"the number of available CPUs 1 is less than the required 2"…
本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空格. 1.在程序中使用注释符号有以下几点需要注意 (1)如果注释符号在数据类型和变量之间,那么将不会影响程序的正常运行. int/*...*/i; (2)如果注释符号位于数据类型之间,那么程序将不会正常运行,因为一个数据类型关键字中间出现一个空格,那么数据类型关键字也就不再是关键字了. /*不能正常…
第一章.前言 以前是用heapster来收集资源指标才能看,现在heapster要废弃了从1.8以后引入了资源api指标监视 资源指标:metrics-server(核心指标) 自定义指标:prometheus,k8s-prometheus-adapter(将Prometheus采集的数据转换为指标格式)     k8s的中的prometheus需要k8s-prometheus-adapter转换一下才可以使用 新一代架构:     核心指标流水线:         kubelet,metric…
第一章.部署dashboard 作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理.通过Dashboard,用户可以查看集群中应用的运行情况,同时也能够基于Dashboard创建或修改部署.任务.服务等Kubernetes的资源.通过部署向导,用户能够对部署进行扩缩容,进行滚动更新.重启Pod和部署新应用. 项目地址:https://github.com/kubernetes/das…
一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案: NodePort LoadBalancer Ingress Ingress 组成 ingress controller 将新加入的Ingress转化成Nginx的配置文件并使之生效 ingress服务 将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的…
0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作.利用 Docker 的镜像管理功能,我们可以很方便的通过网络传输和分享镜像,并保障镜像内容的一致性.所以,了解 Docker 的镜像管理方法可以算是掌握 Docker 的第一步. 0x01 镜像仓库 在之前的小节里,我们已经提到过 Docker 里集中存放镜像的一个概念,也就是镜像仓库. 如果说我们…
网络上介绍yield的文章很多,但大多讲得过于复杂或者追求全面以至于反而不好理解.本文用一个极简的例子给出参考资料[1]中的讲解,因为个人觉得其讲解最为通俗易懂,读者只需要对Python的列表有所了解即可. When you see a function with yield statements, apply this easy trick to understand what will happen: 1. Insert a line result = [] at the start of…
文章目录 (一)安装前准备 (二)master安装 1.安装组件 2.排错 (三)node安装 1.安装组件 2.加入master 3.排错 (四)网络安装 (五)dashboard安装 (一)安装前准备 由于我是在笔记本虚拟机中安装,笔记本性能有限,所以这里就只安装一个node和一个master.准备工作如下,部署好两个虚拟机,都安装好centos7.4系统和docker. – ip docker 系统 master 192.168.226.140 1.13.1 centos7.4 node…
想学习一下kubernetes,于是先安装一个单机版来学习一下.但是就是这个最简单的单机版安装方式都倒腾了我好久,记录下自己的安装过程.博主是在windows利用vmware workstation安装的linu虚拟机,虚拟机系统是centos7.4 1.安装虚拟机系统centos7.4 一开始一直用7.2的一直不行楼主安装是7.2的系统,但是一直报错:Unable to update cni config: No networks found in /etc/cni/net.d 后续搜索了很久…
pod与容器 一个pod是一组紧密相关的容器,它们总是一起运行在同一个节点上,以及同一个LInux命名空间中. 每个pod拥有自己的ip,包含若干个容器.pod分布在不同的节点上. 为什么需要pod 为什么需要pod,而不是直接使用容器: 因为容器被设计为只运行一个进程,由于不能够将多个进程聚集在一个单独的容器中,就需要另一种结构将容器绑定在一起,并将它们作为一个单元管理,这就是pod的根本原理. pod中容器的隔离共享 在同一个pod中,多个容器有些资源是共享的,有些是隔离的. 同一个pod中…
存活探针 Kubernetes可以通过存活探针(liveness probe)检查容器是否存活.如果探测失败,Kubernetes将定期执行探针并重新启动容器. 官方文档请见:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ 存活探针分为三种: exec:在容器内执行任意命令,并检查命令的退出状态码,为0则成功,否则失败. httpGet:执行…
简介 卷是Pod的一部分,与Pod共享生命周期.它不是独立的Kubernetes对象,因此不能单独创建. 卷提供的存储功能不但可以解决容器重启后数据丢失的问题,还可以使数据在容器间共享. 一些卷的类型: emptyDir:用于存储临时数据的空目录 hostPath:用于将目录从工作节点挂载到pod gitRepo:通过检出Git仓库的内容来初始化的卷 nfs:挂载到pod中的nfs共享卷 configMap.secret.downwardAPI:用于将Kubernetes部分资源和集群信息公开给…