
docker k8s paas
文章平均质量分 74
aaa
云川之下
这个作者很懒,什么都没留下…
展开
-
【K8s】kubectl proxy
]$ kubectl proxyStarting to serve on 127.0.0.1:8001]$ curl http://localhost:8001{ "paths": [ "/api", "/api/v1", "/apis", "/apis/", "/apis/admissionregistration.k8s.io", "/apis/admissionregistration.k8s.io/v1", "/apis/admi原创 2021-08-25 11:39:45 · 3889 阅读 · 0 评论 -
【Docker】Docker 容器健康检查机制(原生健康检查机制)
文章目录简介Docker 原生健康检查能力参考简介在分布式系统中,经常需要利用健康检查机制来检查服务的可用性,防止其他服务调用时出现异常。自 1.12 版本之后,Docker 引入了原生的健康检查实现。本文将介绍Docker容器健康检查机制,以及在Docker Swarm mode下面的新特性。本篇着重是docker原生的检查实现。在分布式系统中,经常需要利用健康检查机制来检查服务的可用性,防止其他服务调用时出现异常。对于容器而言,最简单的健康检查是进程级的健康检查,即检验进程是否存活。Docke转载 2021-07-25 21:14:31 · 1577 阅读 · 0 评论 -
【docker】docker run的--rm选项详解、Exited 12 minutes ago
在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。因此,可以通过--rm命令,让容器在退出时,自动清除挂在的卷,以便清除数据:另外,当容器退出时,通过 docker ps是看不到,需要携带-a参数: docker ps -a 如果此时携带--rm,那么及时-a参数,也看不到该容器信息。执行docker run命令带--rm命令选项,等价于在容器退出后,执行docker rm -v通常--rm参数会和Foreground模式的容器使用,因为Foreground原创 2021-07-25 20:16:21 · 29302 阅读 · 1 评论 -
【docker】Docker容器的两种运行模式(Foreground、Detached)
文章目录Docker容器进程有两种运行模式。后台模式就是在后台运行,不会让当前进程卡主,你可以做其他事情,而前台模式会导致当前卡住,并输出日志至当前控制台。Foreground 前台模式(默认)docker run ...或docker run -d=false ...注意,只有在前台模式下,才有必要设置-it命令选项,为容器设置伪TTY。Detached 后台模式docker run -d ...或 docker run -d=true ...foreground容原创 2021-07-25 20:04:38 · 3352 阅读 · 0 评论 -
【docker】Docker容器的重启策略
文章目录1. Docker容器的重启策略2. Docker容器的退出状态码不同操作,对应容器的状态1. Docker容器的重启策略Docker容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker容器的重启都是由Docker守护进程完成的,因此与守护进程息息相关。Docker容器的重启策略如下:no,默认策略,在容器退出时不重启容器on-failure,在容器非正常退出时(退出状态非0),才会重启容器on-failure:3,指定启动的次数,在容器非正常退原创 2021-07-25 17:36:42 · 20547 阅读 · 0 评论 -
【docker】在容器内部看到ppid为0代表什么
在docker容器内部,我们常常看到一些进程它的ppid(父进程id)为0.因为docker 集成了pid namspace;所以pid namespace里ppid=0的情况和docker内部一致。当pid namespace内进程的父进程不在此pid namespace里时,那么ppid显示为0 。这里有两种情况:1、父进程为容器外部的进程,例如docker的主进程。2、通过setns进入到namespace内部的进程。也就是docker exec注入到容器内部的进程参考在容器内部看到p转载 2021-07-24 20:46:01 · 1396 阅读 · 0 评论 -
【docker】怎么查看docker镜像的dockerfile
文章目录前言步骤前言我们知道了根据dockerfile来制作镜像,如果给你一个现成的镜像,你能逆向查看出dockerfile吗?否则,你怎么知道该镜像使用的是CMD还是ENTRYPOINT ,使用的是shell格式还是CMD格式?由于格式决定了docker内部如何产生PID1进程,因此有必要逆向一下。步骤对于dockerfile,我们首先要有基本的了解,dockerfile有自己的语法,基于一个基础的镜像,然后在镜像中定义安装的软件,启动的用户,暴露的端口,挂载的目录,以及容器启动后运行的命令:原创 2021-07-23 16:11:39 · 37273 阅读 · 6 评论 -
【k8s】理解Docker容器的进程管理(PID1进程(容器内kill命令无法杀死)、进程信号处理、僵尸进程)
文章目录概述1. 容器的PID namespace(名空间)2. 如何指明容器PID1进程3. 进程信号处理4. 孤儿进程与僵尸进程管理5. 进程监控总结参考概述简介: Docker在进程管理上有一些特殊之处,本文会分析Docker进程管理的技术细节,并介绍一些常见问题的解决方法和注意事项。Docker在进程管理上有一些特殊之处,如果不注意这些细节中的魔鬼就会带来一些隐患。另外Docker鼓励“一个容器一个进程(one process per container)”的方式。这种方式非常适合以单进程转载 2021-07-23 13:58:08 · 13192 阅读 · 2 评论 -
【k8s】 Pod状态和生命周期管理(Pause容器、Pod的创建过程、探针、livenessProbe、readinessProbe)
文章目录1. 什么是Pod?2. Pod中如何管理多个容器?3. 使用Pod4. Pod的持久性和终止5. Pause容器6. init容器7. Pod的生命周期7.1 Pod phase(Pod的相位)7.2 Pod的创建过程7.3 Pod的状态7.4 Pod存活性探测7.6 Pod的重启策略7.7 Pod的生命7.8 livenessProbe解析7.9 资源需求和资源限制参考1. 什么是Pod?Pod是kubernetes中你可以创建和部署的最小也是最简的单位。一个Pod代表着集群中运行的一个进转载 2021-07-22 19:10:38 · 3474 阅读 · 1 评论 -
【k8s】kubernetes pod为什么需要pause容器(回收僵尸进程)
文章目录pod为什么需要pause容器什么是共享命名空间?如何回收僵尸进程?一些关于PID命名空间共享的思考参考pod为什么需要pause容器当我们检查kubernetes集群的node节点时,我们使用docker ps查看时会发现一些名为pause“的容器在节点上运行。$ docker psCONTAINER ID IMAGE COMMAND ...3b45e983c859 gcr.io/google_containers/转载 2021-07-22 16:00:02 · 2011 阅读 · 0 评论 -
【k8s】Service种类、类型(ClusterIP、NodePort、LoadBalancer、ExternalName)
实际上Service 有多种类型:ClusterIP:通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的ServiceType。NodePort:通过每个 Node 节点上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。通过请求 :,可以从集群的外部访问一个 NodePort 服务。LoadBalancer:使用云提供商的负载局衡器,可以向外部暴露服务。外部的负载均衡原创 2021-07-21 14:38:14 · 7927 阅读 · 2 评论 -
【k8s】K8S中的IP地址(Node IP、Pod IP、Cluster IP、External IP、Internal-IP)
文章目录参考kubernetes里有三张不同的网络,每种IP地址,就代表一个不同的寻址空间:Node IP:Node节点的IP地址Pod IP:Pod的IP地址Cluster IP:Service的IP地址首先,Node IP是kubernetes集群中每个节点的物理网卡的IP地址(包括虚拟机的网卡),这是一个真实存在的物理网络,所有属于这个网络的服务器之间都能通过这个网络进行通信,不管他们中是否有部分节点不属于这个kebernetes集群。这也表明了Kubenetes集群之外的节点访问Kub原创 2021-07-21 11:29:08 · 27020 阅读 · 1 评论 -
【k8s in Action 笔记】 第五章 服务service 二 (Ingress、LoadBalancer 、NodePort区别)
文章目录5.3 将服务暴漏给外部客户端5.3.1 NodePort5.3.1.1 创建 NodePort 类型的服务5.3.2 通过负载均衡器将服务暴露出来5.3.2.1 创建 LoadBalance 服务5.3.2.2 通过负载均衡器连接服务5.3.3 了解外部连接的特性5.3.3.1 了解并防止不必要的网络跳数5.3.3.2 客户端IP是不记录的5.4 通过 Ingress 暴露服务5.4.1 创建 Ingress 资源5.4.2 通过Ingress 访问服务5.4.2.1 确保在Ingress 中配置原创 2021-07-20 17:28:48 · 4561 阅读 · 1 评论 -
【k8s】kubernetes之ingress error: endpoints “default-http-backend“ not found
现象kubectl describe ingresses kubia查看ingresses 时发现default-http-backend not found原因ingresses组件不能单独存在,依赖ingresses Controller组件。而创建ingresses Controller的过程,需要配置一个Default Backend。参见【k8s】Ingress服务、Ingress ControllerDefault Backend作用:ingresses原理是类似nginx,做原创 2021-07-20 17:10:44 · 10916 阅读 · 5 评论 -
【k8s】LoadBalancer类型服务需要依赖云平台
在k8s中创建service时,需要指定type类型,可以分别指定ClustrerIP,NodePort,LoadBalancer三种,其中前面两种无论在内网还是公网环境下使用都很常见,只有LoadBalancer大部分情况下只适用于支持外部负载均衡器的云提供商(AWS,阿里云,华为云等)使用。如果想要在内网环境中,使用type=LoadBalancer就需要部署另外的插件,例如MetalLB插件...原创 2021-07-20 09:49:54 · 1473 阅读 · 0 评论 -
【计算机网络】FQDN 是什么
文章目录FQDN 是什么?参考FQDN 是什么?FQDN是完全合格域名/全程域名缩写,Fully Qualified Domain Name,即是域名,访问时将由DNS进行解析,得到IP。FQDN = Hostname + DomainName当我们申请了一个域名时,就可以使用这个域名来得到IP,但若这个域名下挂在很多主机如何?我是不是得申请很多很多域名给每个主机?不需要,域名即创建了一个域,就如命名空间,在这个命名空间下,其他主机都可以创建自己的名称。这个名称就是通过以上公式得来。举个例子,一个转载 2021-07-19 10:17:58 · 13116 阅读 · 0 评论 -
【k8s】ImagePullBackOff 错误处理
文章目录1. 概述2. 问题复现参考1. 概述ImagePullBackOff错误比较简单,镜像下载失败,要么网络设置有问题,要么没有设置镜像源,另外一个比较隐蔽的问题是,当你在集群环境下,假设有3个节点,那么这三个节点都要设置镜像源,因为 kubectl run命令默认可以在任一个节点上安装,而不是命令在哪个节点上执行!另外如果是公司内网,无法连接镜像源,只能自己上传镜像时,切记,集群环境下也会存在问题,因为镜像需要拷贝到另外2个节点上,或指定节点安装。指定节点安装参见【k8s in Actio原创 2021-07-19 09:59:50 · 38678 阅读 · 0 评论 -
【k8s】socat下载安装(转发数据)
文章目录通过源码安装socat是一个网络工具, k8s 使用它来进行 pod 的数据交互,出现这个问题直接安装socat即可:通过源码安装下载路径:http://www.dest-unreach.org/socat/download/tar zxvf socat-1.7.3.3.tar.gzcd socat-1.7.3.3./configuremake make install如果安装过程出错,看情况定位解决,或换个新版本我在centos上 安装socat-1.7.2.4.tar.g原创 2021-07-18 15:29:15 · 1877 阅读 · 0 评论 -
【K8S】配置中的port、targetPort、nodePort和containerPort区别
文章目录portnodePorttargetPortcontainerPort图解参考portport是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service。仅限于集群节点内互相访问,外部无法访问。nodePortnodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。targetPorttargetPort是pod的端口,从port和nodePort来的流量经过ku转载 2021-07-18 11:53:39 · 3781 阅读 · 2 评论 -
【k8s】kubectl label命令(对node添加、删除label)
文章目录添加查询删除修改添加语法:kubectl label nodes kube-node label_name=label_value样例:先查看node列表[root]$ kubectl get nodesNAME STATUS ROLES AGE VERSION194.246.9.25 Ready <none> 16d v1.19.4194.246.9.26 Ready <none> 16d原创 2021-07-18 00:13:52 · 26386 阅读 · 0 评论 -
JFrog Artifactory制品库、仓库、版本、docker
文章目录背景背景在软件项目开发中,一个项目常常依赖于大量的外部库,而这些外部库又在不断的进行版本更新,特别是在当前微服务开发越来越流行的情况下,一个服务依赖于多个服务,如何管理依赖库以及依赖版本,确保开发有序进行呢?JFrog ArtiFactoryArtiFactory是一款二进制存储管理工具,用来管理构建工具(如:gradle)等所依赖的二进制仓库,以方便管理第三方库和发布目标版本库,从而提高软件开发效率。它提供大量的插件以利于和不同工具之间的整合,内部使用权限管理更加安全,并支持高并发等等特原创 2021-07-17 15:38:12 · 2440 阅读 · 0 评论 -
【OpenStack】openstack及组件简要介绍
参考openstack及组件简要介绍转载 2021-07-03 18:30:29 · 2165 阅读 · 0 评论 -
【OpenStack】基础知识介绍(IaaS,PaaS,SaaS)以及与docker的关系
文章目录1. 云计算类型2. OpenStack是什么3. OpenStack与docker的关系4. 如何学习OpenStack参考1. 云计算类型了更好的理解OpenStack,我们首先来说一下云计算的类型。根据所提供服务的类型,云计算有以下三种落地方式。1、Iaas(基础架构即服务),用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序。2、PaaS(平台即服务),用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟原创 2021-07-02 10:50:28 · 2686 阅读 · 0 评论 -
Docker带ce和不带ce的区别
概述CE( Community Edition)是社区版,简单理解是免费使用,提供小企业与小的IT团队使用,希望从Docker开始,并尝试基于容器的应用程序部署。EE(Docker Enterprise Edition)是企业版,收费。提供功能更强。适合大企业与打的IT团队。为企业开发和IT团队设计,他们在生产中构建、交付和运行业务关键应用程序官网上有图说明他们之间的相同和差别:功能差别:支持平台差别:发布周期不同:从 docker 版本17.03开始基于时间线进行版本发布。17.03转载 2021-07-01 11:00:00 · 7168 阅读 · 0 评论 -
Docker镜像存储-overlayfs
文章目录1. 概述2. OverlayFS2.1 介绍2.2 联合挂载3. Docker中的overlay驱动3.1 演示3.2 如何工作4. overlay2镜像存储结构image元数据layer元数据系列文章:Docker镜像存储-overlayfsdocker背景知识3 镜像分层(overlay2)Docker存储驱动之–overlay21. 概述Docker中的镜像采用分层构建设计,每个层可以称之为“layer”,这些layer被存放在了/var/lib/docker/<stora转载 2021-06-30 15:59:34 · 688 阅读 · 0 评论 -
Docker存储卷volume(V18.X)
文章目录1. 简介1.1 介绍1.2 作用1.3 分类2. 存储卷使用2.1 设置卷的命令2.1.1 -v或`--volume`选项指定卷2.1.2 `--mount`指定卷2.1.3 使用Volumes模式2.1.4 使用bind mounts模式2.1.5 使用tmpfs mounts2.1.6 使用容器数据卷3. 存储卷管理3.1 创建存储卷3.2 查看存储卷详情3.3 查看所有存储卷3.4 删除一个或多个卷3.5 移除本地未使用的卷4. 数据卷的备份与恢复4.1 数据备份4.2 数据恢复参考1转载 2021-06-28 14:21:44 · 544 阅读 · 1 评论 -
Docker网络(veth、网桥、host、container、none)
文章目录1. 概述2. bridge网络模式2.1 介绍2.2 关于veth2.3 容器与容器间通讯2.4 容器与外部网络通讯2.5 宿主机与容器通讯2.6 外部访问容器2.7 自定义网桥3. host网络模式4. container网络模式5. none网络模式6. 总结参考1. 概述docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge、host、overlay、macvlan、none、Network plugins,每个网络都有自己的特点,当然应转载 2021-06-28 00:10:54 · 4230 阅读 · 2 评论 -
Docker镜像构建(docker build命令、Dockerfile)
aaa转载 2021-06-27 22:19:44 · 16792 阅读 · 1 评论 -
什么是docker及docker的基础命令
文章目录1. 简介1.1 特性1.2 组件1.3 版本2. 安装部署2.1 安装说明2.2 centos7安装2.3 Debian&Ubuntu3. 运行docker3. docker基本操作3.1 容器操作3.1.1 启动容器3.1.2. 查看容器3.1.3 查看容器具体信息3.1.4 停止容器3.1.5 启动已停止的容器3.1.6 删除容器3.1.7 暂停某个容器3.1.8 恢复暂停的容器3.1.9 查看容器日志3.1.10 在已运行的容器中运行命令3.1.11 容器导出3.1.12 将导出的转载 2021-06-26 17:52:26 · 298 阅读 · 0 评论 -
【k8s】pod内容器被重新拉起后,pod state与laststate描述、Restart Count
可以通过describe查看pod的运行状态:kubectl describe xxxPodId如果容器没有异常重启过,看到的内容如下:Containers: em-tm-analysis: Container ID: docker://f4a1b0f40eee1b2bbaa1e1ffb7c46c17f728d03620518044166065f7815a027e Image: swr:6666/zenap/em-tm-analysis:16.21.10.原创 2021-04-26 11:27:43 · 2767 阅读 · 1 评论 -
详述 IaaS、PaaS 和 SaaS 的含义及区别
文章目录概述SaaSPaaSIaaS概述越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类:IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Software-as-a-service它们有什么区别呢?IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。请设想你是一个餐饮业者,转载 2021-04-20 11:45:55 · 925 阅读 · 0 评论 -
【OpenStack 】OpenStack Cinder之过滤器affinity/anti-affinity(亲和性、反亲和性)介绍
文章目录1. 简介Openstack Cinder的调度服务用于选择一个合适的cinder-volume节点来处理用户有关云盘生命周期的请求。本文介绍调度器affinity/anti-affinity的原理和使用方法。1. 简介过滤器affinity/anti-affinity描述了云盘之间的关系:affinity表示新创建的云盘跟指定的云盘在同一个后端(back-end/pool)anti-affinity表示新创建的云盘跟指定的云盘在不同一个后端(back-ends/pools).为原创 2021-04-16 14:41:16 · 1465 阅读 · 0 评论 -
【k8s】 核心概念 2 service
我们现在已经有了 pod ,那让他们相互访问不可以么?答案是,不可以,因为 pod 是有生命周期的,他可能随时被创建也可能随时被销毁,而 每次新建 pod 就会给其分配一个随机的 ip,并且 k8s 也会自动调控 pod 的数量。这就导致了 pod 之间直接访问是不现实的,如果有一个入口,可以动态绑定那些提供相同服务的 pod,并将其开放在固定端口上,这样访问起来不就方便很多了么?这个入口在 k8...原创 2020-03-25 11:09:06 · 219 阅读 · 0 评论 -
【k8s in Action 笔记】 第五章 服务service 一 ( dns、ENDPOINTS)
我们基于第四章中代码清单4.4 kubia-rc.yaml创建的3个pod实例k8s in Action 笔记 第四章 控制器ReplicationController代码清单5.1 kubia-svc.yamlapiVersion: v1kind: Servicemetadata: name: kubiaspec: ports: - port: 80 target...原创 2020-03-26 20:30:01 · 1347 阅读 · 0 评论 -
【k8s in Action 笔记】 第四章 控制器ReplicationController
代码清单4.4 kubia-rc.yamlapiVersion: v1kind: ReplicationControllermetadata: name: kubiaspec: replicas: 3 selector: app: kubia template: metadata: labels: app: kubia s...原创 2020-03-26 19:42:02 · 300 阅读 · 0 评论 -
【k8s in Action 笔记】 第三章 YAML描述文件创建pod(依赖socat服务)
代码清单 3.2 kubia-manual.yamlapiVersion: v1kind: Podmetadata: name: kubia-manualspec: containers: - image: swr:6666/ems/kubia:v1 name: kubia ports: - containerPort: 8081 proto...原创 2020-03-26 19:18:10 · 712 阅读 · 0 评论 -
【k8s】 核心概念 1 Namespaces、 Lables、Selectors
Objectsk8s资源对象是持久化在k8s系统中的实体,k8s的操作的都是这些对象,对象一表描述如下信息那些容器被运行,运行在那些节点上使用资源的约束运行时的策略,比如重启、升级、容错如下是一个典型的Deployment资源对象yaml描述:apiVersion: apps/v1kind: Deploymentmetadata: name: simple-deployme...原创 2020-03-25 10:05:24 · 739 阅读 · 0 评论 -
【k8s】入门 1 启动一个mysql镜像
作为对比,可以参考之前的docker 入门 1 启动一个mysql镜像采用相同的mysql镜像$ kubectl run kubia2 --image=docker.artnj.zte.com.cn/cci/mysql:5.6 --port=3306 --env="MYSQL_ROOT_PASSWORD=123456" --generator=run/v1kubectl run --ge...原创 2020-03-21 17:40:54 · 986 阅读 · 0 评论 -
【k8s】kubectl 命令 (2) kubectl run(--generator)
k8s 版本 V1.13参考kubectl runKubernetes kubectl run 命令详解kubectl run创建并运行一个或多个容器镜像。创建一个deployment 或job 来管理容器。语法:$ run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas] [–dr...原创 2020-03-21 11:08:05 · 1717 阅读 · 0 评论 -
【k8s】kubectl 命令 (1) get
通过kubectl get --help查看详细用法一、命令格式kubectl get resource名称二、resource列表allcertificatesigningrequests (aka ‘csr’)clusterrolebindingsclusterrolcomponentstatuses (aka ‘cs’)configmaps (aka ‘cm’)con...原创 2020-01-10 20:26:34 · 774 阅读 · 0 评论