Kube

10分钟看懂Docker和K8S

自闭症网瘾萝莉.ら 提交于 2020-04-23 14:34:17
本文来源:鲜枣课堂 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

Helm 从入门到实践

陌路散爱 提交于 2020-04-23 13:46:43
一、概述 Helm 是 Kubernetes 的软件包管理工具。本文需要读者对 Docker、Kubernetes 等相关知识有一定的了解。 本文将介绍 Helm 中的相关概念和基本工作原理,并通过一些简单的示例来演示如何使用Helm来安装、升级、回滚一个 Kubernetes 应用。 Helm 是什么?? Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。 Helm 解决了什么痛点? 在 Kubernetes中部署一个可以使用的应用,需要涉及到很多的 Kubernetes 资源的共同协作。比如你安装一个 WordPress 博客,用到了一些 Kubernetes (下面全部简称k8s)的一些资源对象,包括 Deployment 用于部署应用、Service 提供服务发现、Secret 配置 WordPress 的用户名和密码,可能还需要 pv 和 pvc 来提供持久化服务。并且 WordPress 数据是存储在mariadb里面的,所以需要 mariadb

Docker和k8s的区别与介绍

坚强是说给别人听的谎言 提交于 2020-04-23 12:19:53
本文来源:鲜枣课堂 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

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

喜夏-厌秋 提交于 2020-04-23 12:18:47
本篇已加入《 .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包含一个或多个容器

CentOS7安装k8s

落花浮王杯 提交于 2020-04-23 12:17:46
借鉴博客:https://www.cnblogs.com/xkops/p/6169034.html 此博客里面有每个k8s配置文件的注释:https://blog.csdn.net/qq_35904833/article/details/78190257 啊西吧,啊西吧,根据上面的博客终于安装成功了。妈的,网上大部分博客安装k8s配置写得乱七八槽的,终于找到一篇条理清晰,安装详细的k8s安装博客啦,哈哈哈哈,不容易啊快三个星期了,从狗屁不懂搞这玩意。 下面写一写我自己的安装流程:   一、安装准备:       准备两台服务器(我用的是CentOS7系统):192.168.26.227,192.168.26.228       一主一从:         master机:192.168.26.227         node机:192.168.26.228       简单说一下k8s:         k8s是个什么玩意?           可以这样去理解:k8s全称:Kubernetes,它可以看作是一个分布式系统支撑平台。                   我们为什么要用k8s集群?           故障自愈:             k8s这个玩意可以监控容器运行,我们把项目放到容器里。由于一些外部内部原因服务器承受不住压力,如果主节点上的容器突然挂了

CoreDNS解析异常记录

此生再无相见时 提交于 2020-04-23 10:20:09
CoreDNS解析异常记录 异常情况:集群是用kubespray部署的4个worknode,coredns默认部署2个deployment。今天发现部署了coredns的node上的pod正常解析内部域名,而另外2个未运行coredns的node却无法解析。 配置文件: 下图中我们看到coredns2个pod分别在node1与node2上,只要分配到这2节点上的deployment都可以正常解析。 其他节点无法解析: 处理过程: 正常来说所有的pod都是通过coredns来进行集群内域名解析的,我也搞不清楚为啥其他两个node没有跑coredns则就无法解析后面再研究。所以我临时的解决方法是扩容coredns让每个node都跑。 1、修改 ConfigMap 中的 dns-autoscaler(coredns自动扩容保证高可用) kubectl edit configmap dns-autoscaler --namespace=kube-system 2、修改key:linear coresPerReplica: 按照核心数目来计算副本集(replicas = cores / coresPerReplica) nodesPerReplica:按照节点数目来计算副本集(replicas = nodes / nodesPerReplica) min:最小副本数(默认为2

Kubernetes 学习24 helm入门

假如想象 提交于 2020-04-23 08:16:08
一、概述   1、我们此前在使用kubernetes中,无论我们使用无状态的应用程序,比如myapp,nginx。以及有状态的tomcat,redis,etcd,...等等,他们部署在k8s之上会有这样的问题。首先对无状态应用我们首先使用deployment控制器来实现控制以后其规模伸缩极其容易。这也是k8s带给我们的最重要的需要。但是如果是有状态的应用,若是有状态的单一实例的应用,我们使用deployment控制它并限制他不能够进行规模的伸缩是没有任何问题的,照样能够使用持久存储来完成数据的持久存储能力。但是一旦我们需要将有状态应用扩展至多个副本这么一来就会导致不同的应用程序他的扩展方式是不尽相同的。比如tomcat,我们扩展至多个实例,如果我们需要去追踪用户状态而且允许用户上传数据的话就没有问题。同样的,redis,如果我们配置的是redis主从和配置的是redis cluster很显然他们就是不同的分布方式,同样的etcd等等也是一样的。这就会导致大量用户在配置和部署时面对这种有状态应用面对着极大的困难。所以我们说过没有足够实力想把有状态的应用部署在k8s之上真的不是一件轻松的事。不过阿里或蚂蚁金服这种大佬公司除外。我们也说过如果要去部署有状态应用我们可以可以看到比如prometheus他们就可以借助于opertor来实现,我们讲过运维工程师本身就可以理解为opertor

解决k8s安装coredns提示证书错误问题

♀尐吖头ヾ 提交于 2020-04-19 19:01:34
安装了一个新k8s环境在安装完kube-router网络插件以后发现coredns始终无法启动。通过命令查看发现报错 kubectl describe pod -n kube-system coredns-757569d647-qj8ts 日志: Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "b7ea16c5b21e06069d1418b322e04bd2da482acdf21f863f47c96a80c551eab5" network for pod "coredns-757569d647-qj8ts": networkPlugin cni failed to set up pod "coredns-757569d647-qj8ts_kube-system" network: error getting ClusterInformation: Get https://[10.31.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: x509: certificate signed by unknown authority (possibly

hyper-v虚拟机上的centos多节点k8s集群实践

二次信任 提交于 2020-04-19 08:50:10
之前体验了minikube,掉深坑里至今还没有爬出来,玩单节点用minikube够了, 但傻瓜试的安装让人对k8s理解不是很深刻(坑),而且多节点好像有什么奇怪的问题 所以我这次要用两个虚拟机来模拟k8s集群 一主节点一工作节点 hostname   ipaddr   cpu   硬盘  内存  OS    docker  k8s m1    1921.168.1.200  2    20G   2G   centos7  18    1.16.2 w1    1921.168.1.201  2    20G   2G   centos7  18    1.16.2 由于我使用的虚拟机驱动是hyper-v 所以要记得每个虚拟机关闭动态内存 关于虚拟机的安装配置这里就不再深入讨论 虚拟机交换机 动态内存关闭 我先创建一个虚拟机,安装完docker,k8s和一些其他配置后,再复制,这样比较快一点 但是k8s集群里的节点 mac和uuid不能重复,这个到时再想办法修改 安装centos时选择最小安装,图形界面不安装,这样比较省计算机资源 最小安装完成重启后, 需要做的事情 1.修改网卡为开机自动启动,2.打开ssh 先来打开ssh吧, hyper-v里面操作不方便 我要用powersheel连接上去 vi /etc/ ssh /sshd_config 取消两行注,由于我是用root登录

CentOS 7 yum安装 k8s 创建Pod一直处于ContainerCreating状态 问题解决

自作多情 提交于 2020-04-18 17:55:30
问题描述 使用CentOS7的 yum 包管理器安装了 Kubernetes 集群,使用 kubectl 创建服务成功后,执行 kubectl get pods ,发现AGE虽然在不断增加,但状态始终不变 本文内容 分析问题原因 给出直接解决此问题的方式 (不完美) 给出其他方案 且听我娓娓道来~ 问题分析与解决 kubectl 提供了 describe 子命令来输出指定的一个/多个资源的详细信息。 执行 kubectl describe pod mytomcat-9lcq5 ,查看问题 Pod 的状态信息,输出如下: [root@kube-master app]# kubectl describe pod mytomcat-9lcq5 Name: mytomcat-9lcq5 Namespace: default Node: kube-node-2/192.168.87.145 Start Time: Fri, 17 Apr 2020 15:53:50 +0800 Labels: app=mytomcat Status: Pending IP: Controllers: ReplicationController/mytomcat Containers: mytomcat: Container ID: Image: tomcat:9-jre8-alpine Image ID: