Kube

Kubernetes容器编排技术浅析

最后都变了- 提交于 2020-04-27 10:51:42
出现的背景 kubernetes是一个容器编排开源软件,它可以轻松高效管理由千上万的主机组成的集群,并提供容器部署运行的环境。 kubernetes最初由Google开发和设计,前身是Borg系统,Google有成千上万的容器运行在上面,主要帮忙Google实现简化开发和管理,并且提供基础设施的资源利用率。再内部稳定运行Borg数十年之久后,随着容器化的大流行,2014年Google开源了kubernetes,一个基于Borg和其它内部系统的开源系统。2015年,Google将kubernetes项目捐赠给了CNCF(云原生计算基金会)。 优势和劣势 优势 1,kubernetes基于Google内部的Borg系统实现,有着长达数十年之久的稳定大规模运行实践经验。 2,Kubernetes提供的是一个平台,不是解决方案,实现容器化应用程序的一次编写并在各类型云基础设施上运行,它将公有云与私有云之间存在的复杂的基础设施差异抽象化掉了。 3,社区活跃多极高,在所有竞争对手中遥遥领先 1,安装部署比较麻烦 2,只能用于容器的编排管理 适用场景 帮助开发聚焦核心应用功能 kubernetes可以被认为是一个集群的操作系统,它提供了注入服务发现,扩容,负载均衡,自恢复,选举等功能,使开发者不用关心基础设施相关的服务而可以把心思都集中再应用实现本身。 帮助运维提升资源利用率

Kubernetes+Jenkins+Nexus+Gitlab进行CI/CD集成

核能气质少年 提交于 2020-04-27 06:24:30
前面已经完成了 二进制部署Kubernetes集群 ,下面进行CI/CD集成。 一、流程说明 应用构建和发布流程说明: 1、用户向Gitlab提交代码,代码中必须包含Dockerfile; 2、将代码提交到远程仓库; 3、用户在发布应用时需要填写git仓库地址和分支、服务类型、服务名称、资源数量、实例个数,确定后触发Jenkins自动构建; 4、Jenkins的CI流水线自动编译代码并打包成docker镜像推送到Nexus镜像仓库; 5、Jenkins的CI流水线中包括了自定义脚本,根据我们已准备好的kubernetes的YAML模板,将其中的变量替换成用户输入的选项; 6、生成应用的kubernetes YAML配置文件; 7、更新Ingress的配置,根据新部署的应用的名称,在ingress的配置文件中增加一条路由信息; 8、更新PowerDNS,向其中插入一条DNS记录,IP地址是边缘节点的IP地址。关于边缘节点,请查看边缘节点配置; 9、Jenkins调用kubernetes的API,部署应用; 二、 安装NFS 部署时候会使用PVC对象,进行挂载,需要有远程存储,这里安装nfs。master1作为nfs服务端,其余node作为nfs客户端。 2.1 安装nfs 在所有的节点上安装 yum install -y nfs-utils rpcbind 2.2 配置nfs

多K8s集群切换:Kubectl客户端配置全记录

£可爱£侵袭症+ 提交于 2020-04-26 08:26:30
导读:Kubectl客户端使我们可以在多个K8s集群之间进行配置和轻松切换。 kubectl的配置文件位置 kubectl配置文件的主要位置是$ HOME / .kube,默认情况下,我们有一个名为config的配置文件: [node1 ~]$ cd $HOME/.kube [node1 .kube]$ ls -lah total 4.0K drwxr-xr-x 1 root root 37 Mar 12 20:48 . dr-xr-x--- 1 root root 19 Nov 29 11:46 .. drwxr-x--- 3 root root 23 Mar 12 20:48 cache lrwxrwxrwx 1 root root 26 Nov 29 11:46 config -> /etc/kubernetes/admin.conf drwxr-x--- 3 root root 4.0K Mar 12 20:48 http-cache 多个配置文件和KUBECONFIG变量 通过设置适当的KUBECONFIG shell变量,我们可以拥有多个配置文件。 例如: export KUBECONFIG=$KUBECONFIG:/root/.kube/additional_config 从kubectl检查配置 我们可以检查当前的配置(由于我的Additional

二进制安装部署kubernetes集群---超详细教程

霸气de小男生 提交于 2020-04-26 07:44:05
本文收录在 容器技术学习系列文章总目录 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的 网盘 中,需要的可以打赏博主一杯咖啡钱,然后私密博主,博主会很快答复呦~ 00.组件版本和配置策略 00-01.组件版本 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 (elasticsearch 、 fluentd 、 kibana) 镜像仓库: docker registry harbor 00-02.主要配置策略 kube-apiserver : 使用 keepalived 和 haproxy 实现 3 节点高可用; 关闭非安全端口 8080 和匿名访问; 在安全端口 6443 接收 https 请求; 严格的认证和授权策略 (x509 、 token 、 RBAC) ; 开启 bootstrap token 认证,支持 kubelet TLS bootstrapping ; 使用 https 访问 kubelet 、 etcd ,加密通信; kube-controller-manager :

附008.Kubernetes TLS证书介绍及创建

我是研究僧i 提交于 2020-04-25 07:59:43
一 Kubernetes证书 1.1 TLS Kubernetes系统的各个组件需要使用TLS证书对其通信加密以及授权认证,建议在部署之前先生成相关的TLS证书。 1.2 CA证书创建方式 kubernetes 系统各个组件需要使用TLS证书对通信进行加密,通常可通过以下工具生产自建证书: openssl cfssl easyrsa 1.3 Kubernetes组件证书 部署kubernetes组件建议使用TLS双向认证的,相关组件涉及的主要证书有: etcd证书:etcd集群之间通信加密使用的TLS证书。 kube-apiserver证书:配置kube-apiserver组件的证书。 kube-controller-manager证书:用于和kube-apiserver通信认证的证书。 kube-scheduler证书:用于和kube-apiserver通信认证的证书。 kubelet证书【可选,非必需】:用于和kube-apiserver通信认证的证书,如果使用TLS Bootstarp认证方式,将没有必要配置。 kube-proxy证书【可选,非必需】:用于和kube-apiserver通信认证的证书,如果使用TLS Bootstarp认证方式,将没有必要配置。 二 openssl生成证书 2.1 openssl创建证书 1 [root@master ~]# MASTER

ASP.NET Core on K8S深入学习(2)部署过程解析与Dashboard

泪湿孤枕 提交于 2020-04-24 23:44:36
本篇已加入《 .NET Core on K8S学习实践系列文章索引 》,可以点击查看更多容器化技术相关系列文章。 上一篇《 K8S集群部署 》中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完成可视化管理。本篇已加入了《 .NET Core on K8S学习实践系列文章索引 》,更多内容请到索引中查看。 一、部署示例项目 1.1 准备一个ASP.NET Core WebAPI   这里准备一个空的ASP.NET Core WebAPI项目,使用默认自带的ValuesController控制器,具体代码见 这里 。   Dockerfile如下: FROM microsoft/dotnet: 2.1 -aspnetcore- runtime AS base WORKDIR / app EXPOSE 80 FROM microsoft /dotnet: 2.1 - sdk AS build WORKDIR / src COPY . . RUN dotnet restore RUN dotnet build -c Release -o / app FROM build AS publish RUN dotnet publish -c Release -o / app FROM

ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

帅比萌擦擦* 提交于 2020-04-24 23:40:56
本篇已加入《 .NET Core on K8S学习实践系列文章索引 》,可以点击查看更多容器化技术相关系列文章。 在上一个小系列文章《 ASP.NET Core on K8S学习初探 》中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NET Core WebAPI项目部署到了K8S,把玩了一下快速部署和实例伸缩。这个系列开始,会继续学习K8S以及在Linux上搭建集群来深入把玩。本篇会回顾一下K8S的基本概念以及架构组成,然后会通过Kubeadm快速地搭建一个K8S集群供后续学习把玩之用。 一、K8S基础概念回顾   1.Cluster 集群   计算、存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用。   2.Master   Master是Cluster的大脑,负责调度(决定将应用放在哪里运行),一般为了实现高可用,会有多个Master。   3.Node   负责运行具体的容器,Node由Master管理,它会监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期。   eg. 在交互实验中,这个Cluster中只有一个主机,它既是Master也是Node。   4.Pod   Kubernetes的最小工作单元,每个Pod包含一个或多个容器

Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

穿精又带淫゛_ 提交于 2020-04-24 23:26:11
首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利。 Install 1.安装并启用 Docker sudo apt install docker.io sudo systemctl enable docker docker --version 2.添加 Kubernetes signing key 和Repository sudo apt install curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" 3.安装Kubeadm sudo apt install kubeadm kubeadm version #常用命令 重启kubelet服务: systemctl daemon - reload systemctl restart kubelet sudo systemctl restart kubelet.service sudo systemctl daemon - reload sudo systemctl

干货满满!10分钟看懂Docker和K8S(转)

本小妞迷上赌 提交于 2020-04-24 23:25:54
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。 正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。 什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。 Open Source,开源 有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。 2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。 Solomon Hykes(今年刚从Docker离职) 不开则已,一开惊人。 越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。 Docker的人气迅速攀升,速度之快,令人瞠目结舌。 开源当月,Docker 0.1版本发布。此后的每一个月

干货满满!10分钟看懂Docker和K8S

家住魔仙堡 提交于 2020-04-24 23:09:08
本文来源微信号:鲜枣课堂 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。 正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。 什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。 Open Source,开源 有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。 2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。 Solomon Hykes(今年刚从Docker离职) 不开则已,一开惊人。 越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。 Docker的人气迅速攀升,速度之快,令人瞠目结舌。 开源当月,Docker 0