Kubernetes

Dockerfile构建镜像

ⅰ亾dé卋堺 提交于 2021-02-14 15:54:23
几乎所有的image都是通过Dockerfile生成出来的,使用Dockerfile可以让我们很轻松的构建出一个镜像,我们如果需要部署自己的程序常常也可会Dockerfile把代码和环境构建成一个image进行使用 附上: 喵了个咪的博客: w-blog.cn 官方Git地址: https://github.com/moby/moby 1.DockerFile介绍 以hub.docker中的项目来说,一般作者都会存放这个image对应的Dockerfile,我们也可以直接使用Dockerfile来生成自己的nginx镜像 2.编译自己的nginx Dockerfile可以基于任何镜像的技术上搭建环境,可以基于别人做好的镜像比如Nginx,也可以基于基础镜像比如centos等,这里基于nginx镜像构建出本地的nginx:local并且运行镜像不在启动nginx只是输出一条nginx > vim Dockerfile FROM nginx:1.13.12 CMD ["echo", "nginx"] > docker build -t nginx:local . > docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx local 6ea964efbbc8 10 seconds ago 109 MB > docker run

容器计算资源管理&网络QoS的实现---Openshift3.9学习系列第四篇

試著忘記壹切 提交于 2021-02-14 15:30:10
前言 本文仅代表作者的个人观点; 本文的内容仅限于技术探讨,不能直接作为指导生产环境的素材; 本文素材是红帽公司产品技术和手册; 本文分为系列文章,将会有多篇,初步预计将会有8篇。 本文最后一节网络QoS部分,引用了潘晓华的文章。 一、计算资源 在OCP中,每个计算节点(默认是node节点,master节点通过配置也可以运行业务,但不建议这么做。)对于pod而言,CPU和内存都是属于计算资源。 在创建pod的时候,可以指定容器需要多少CPU和内存(RAM)。其中: CPU是以millicores的单位进行分配,即一个CPU core 1/1000的运算能力。 内存分配以字节为单位,也可以设置成 以Gi, Mi, Ki为单位。 例如下图,设置pod需要获取的CPU是100m,内存是200MiB。100m相当于1/10 CPU Core的计算能力。 二、几个参数 CPU Request pod中的每个容器都可以指定它在节点上请求的CPU量;同时Scheduler使用CPU请求来查找适合容器的节点 CPU Request表示容器可能消耗的最小CPU量 1. 如果节点上没有CPU争用,它可以使用所有可用的CPU 2.如果节点上存在CPU争用,则CPU Request会在系统上的所有容器中提供相对权重,以确定容器可以使用多少CPU时间 CPU Limits

Dockerfile 之最小化 Java 镜像的常用技巧

折月煮酒 提交于 2021-02-14 14:07:32
背景 随着容器技术的普及,越来越多的应用被容器化。人们使用容器的频率越来越高,但常常忽略一个基本但又非常重要的问题 - 容器镜像的体积。本文将介绍精简容器镜像的必要性并以基于 spring boot 的 java 应用为例描述最小化容器镜像的常用技巧。 精简容器镜像的必要性 精简容器镜像是非常必要的,下面分别从安全性和敏捷性两个角度进行阐释。 安全性 基于安全方面的考虑,将不必要的组件从镜像中移除可以减少攻击面、降低安全风险。虽然 docker 支持用户通过 Seccomp 限制容器内可以执行操作或者使用 AppArmor 为容器配置安全策略,但它们的使用门槛较高,要求用户具备安全领域的专业素养。 敏捷性 精简的容器镜像能提高容器的部署速度。假设某一时刻访问流量激增,您需要通过增加容器副本数以应对突发压力。如果某些宿主机不包含目标镜像,需要先拉取镜像,然后启动容器,这时使用体积较小的镜像能加速这一过程、缩短扩容时间。另外,镜像体积越小,其构建速度也越快,同时还能减少存储和传输的成本。 常用技巧 将一个 java 应用容器化所需的步骤可归纳如下: 编译 java 源码并生成 jar 包。 将应用 jar 包和依赖的第三方 jar 包移动到合适的位置。 本章所用的样例是一个基于 spring boot 的 java 应用 spring-boot-docker,所用的未经优化的

(译)Rook & Ceph 简介

只谈情不闲聊 提交于 2021-02-13 23:44:35
在容器世界中,无状态是一个核心原则,然而我们始终需要保存数据,并提供给他人进行访问。所以就需要一个方案用于保持数据,以备重启之需。 在 Kubernetes 中,PVC 是管理有状态应用的一个推荐方案。有了 PVC 的帮助,Pod 可以申请并连接到存储卷,这些存储卷在 Pod 生命周期结束之后,还能独立存在。 PVC 在存储方面让开发和运维的职责得以分离。运维人员负责供应存储,而开发人员则可以在不知后端细节的情况下,申请使用这些存储卷。 PVC 由一系列组件构成: PVC:是 Pod 对存储的请求。PVC 会被 Pod 动态加载成为一个存储卷。 PV,可以由运维手工分配,也可以使用 StorageClass 动态分配。PV 受 Kubernetes 管理,但并不与特定的 Pod 直接绑定。 StorageClass:由管理员创建,可以用来动态的创建存储卷和 PV。 物理存储:实际连接和加载的存储卷。 分布式存储系统是一个有效的解决有状态工作负载高可用问题的方案。Ceph 就是一个分布式存储系统,近年来其影响主键扩大。Rook 是一个编排器,能够支持包括 Ceph 在内的多种存储方案。Rook 简化了 Ceph 在 Kubernetes 集群中的部署过程。 在生产环境中使用 Rook + Ceph 组合的用户正在日益增加,尤其是自建数据中心的用户,CENGN、Gini、GPR

「民工哥技术之路」2019年 5 月文章集合

梦想的初衷 提交于 2021-02-13 19:28:45
点击上方 “ 民工哥技术之路 ” 选择“星标” 每天 为你 分享 不一样的干货 读者福利!多达 2048G 各种资源免费赠送 之前已经整理到4月份: 我把公众号所有的精华文章都整理出来了 , 后面将陆续整理当年每个月的文章集合,继而将每年的文章统一成一个合集,方便后面的读者查看与检索。整理不易,如有帮助,希望大家动手 点个 在看 与 转发分享 支持一波。 以下是5月份文章集合「点击标题跳转阅读」: 强大!Nginx 配置在线一键生成“神器” 构建高效安全的Nginx Web服务器 Prometheus 使用总结:我踩过得那些坑 学习Docker,新手最容易犯的11个错误! 10个小技巧提高 Kubernetes 容器效率 深度好文:Nginx 是如何启动并处理 http 请求的? 使用 Docker-compose 一键部署gitlab 高逼格企业级MySQL数据库备份方案,原来是这样.... Redis 这么火,它都解决了哪些问题? 面试必问的 Mysql 四种隔离级别,看完吊打面试官 高可用数据库主从复制延时的解决方案 服务器性能优化的正确姿势(好文推荐) 一篇超实用的服务异常处理指南 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系 你头疼的ELK难题,本文几乎都解决了 3台廉价机器每秒写入2百万!Kafka为什么那么快? 超全|138 条 Vim 命令

I have deployed pods withs its service and I am getting: failed to connect to port 80

ぃ、小莉子 提交于 2021-02-13 17:36:28
问题 I have a kubernetes cluster on GCP made of two nodes. I have pod -> mycha-deploy, with service -> mycha-svc, also I have pod nginx-controller with service nginx-svc. When I try to curl into the pods or services ips I keep getting: port 80 conection refused. When I browse into the master ip I don't get anything. Is there something I am missing in the configuration. Thank you. # mycha-deploy apiVersion: apps/v1 kind: Deployment metadata: name: mycha-deploy labels: app: mycha-app spec: replicas:

I have deployed pods withs its service and I am getting: failed to connect to port 80

你说的曾经没有我的故事 提交于 2021-02-13 17:34:36
问题 I have a kubernetes cluster on GCP made of two nodes. I have pod -> mycha-deploy, with service -> mycha-svc, also I have pod nginx-controller with service nginx-svc. When I try to curl into the pods or services ips I keep getting: port 80 conection refused. When I browse into the master ip I don't get anything. Is there something I am missing in the configuration. Thank you. # mycha-deploy apiVersion: apps/v1 kind: Deployment metadata: name: mycha-deploy labels: app: mycha-app spec: replicas:

KubeCon+CloudNativeCon 2018论坛首登中国,精彩日程全新出炉

佐手、 提交于 2021-02-13 11:50:56
作为Linux基金会组织的一部分,云原生计算基金会(CNCF)自2016年起,在欧洲、北美等地组织了数场KubeCon+CloudNativeCon论坛。本论坛聚焦着全世界关注云原生领域的目光,并受到了Kubernetes大牛、开发者、厂商等全球开源技术爱好者的强力追捧。 KubeCon+CloudNativeCon 2018论坛将于2018年11月13-15日首次登陆中国上海,这无疑是对中国技术实力的认可,同时,中国程序员们也将可以在上海跨国采购会展中心共同参与这场顶尖的国际技术盛会。 KubeCon+CloudNativeCon 2018中国论坛作为CNCF的旗舰论坛,得到了Liz Rice、Janet Kuo等大咖的大力支持与推荐。本论坛精彩日程现已出炉,看看你关注的议题和大咖! 本次论坛为期三天,预计将吸引开发人员、架构师、技术负责人、首席信息官、首席技术官、媒体和分析师等2500多人到场,以主题演讲、分论坛以及展位等形式全方位地为大家打造一场精彩绝伦的技术盛宴。 KubeCon+CloudNativeCon 2018中国论坛将聚焦云原生领域的最新技术动态,CNCF的重点项目Kubernetes、Prometheus、OpenTracing、Fluentd、gRPC、containerd、rkt、CNI、Envoy、Jaeger、Helm等多个项目也将悉数亮相。另外

KubeCon+CloudNativeCon 2018 论坛首秀中国,精彩日程抢先看

生来就可爱ヽ(ⅴ<●) 提交于 2021-02-13 11:02:59
KubeCon+CloudNativeCon,作为由云原生计算基金会(CNCF)发起的最盛大的会议,聚焦着全世界关注云原生领域的目光。 自2016年起,在欧洲、北美等地举办以来,本论坛受到了Kubernetes大牛、开发者、厂商等全球开源技术爱好者的强力追捧。 2018年11月13-15日,KubeCon+CloudNativeCon 2018论坛将首次亮相中国上海,这无疑是对中国技术实力的认可,同时,中国程序员们也将可以在上海跨国采购会展中心共同参与这场顶尖的国际技术盛会。 KubeCon+CloudNativeCon 2018中国论坛作为CNCF的旗舰论坛,得到了Liz Rice、Janet Kuo等大咖的大力支持与推荐。本论坛精彩日程现已出炉,看看你关注的议题和大咖! 本次论坛为期三天,预计将吸引开发人员、架构师、技术负责人、首席信息官、首席技术官、媒体和分析师等2500多人到场,以主题演讲、分论坛以及展位等形式全方位地为大家打造一场精彩绝伦的技术盛宴。 KubeCon+CloudNativeCon 2018中国论坛将聚焦云原生领域的最新技术动态,CNCF的重点项目Kubernetes、Prometheus、OpenTracing、Fluentd、gRPC、containerd、rkt、CNI、Envoy、Jaeger、Helm等多个项目也将悉数亮相。另外

kubectl 命令详解

两盒软妹~` 提交于 2021-02-13 10:26:04
  使用kubectl来管理Kubernetes集群。 kubectl命令的选项: 选项 作用 --alsologtostderr[=false] 同时输出日志到标准错误控制台和文件 --api-version="" 和服务端交互使用的API版本 --certificate-authority="" 用以进行认证授权的.cert文件路径 --client-certificate="" TLS使用的客户端证书路径 --client-key="" TLS使用的客户端密钥路径 --cluster="" 指定使用的kubeconfig配置文件中的集群名 --context="" 指定使用的kubeconfig配置文件中的环境名 --insecure-skip-tls-verify[=false] 如果为true,将不会检查服务器凭证的有效性,这会导致你的HTTPS链接变得不安全 --kubeconfig="" 命令行请求使用的配置文件路径 --log-backtrace-at=:0 当日志长度超过定义的行数时,忽略堆栈信息 --log-dir="" 如果不为空,将日志文件写入此目录 --log-flush-frequency=5s 刷新日志的最大时间间隔 --logtostderr[=true] 输出日志到标准错误控制台,不输出到文件 --match-server-version[