![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kubernetes
菲宇
这个作者很懒,什么都没留下…
展开
-
解决kubeadm部署kubernetes集群镜像问题
kubeadm 是kubernetes 的集群安装工具,能够快速安装kubernetes 集群。kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,需要中转一下才可以使用。首先查看需要哪些镜像kubeadm config images list[root@master ~]# kubeadm config images listI...原创 2018-12-15 21:53:51 · 11546 阅读 · 0 评论 -
grafana-kubernetes plugin安装和使用
简介grafana 为 kubernetes 提供了一套模板,用来展示集群的运行负载。github: https://github.com/grafana/kubernetes-app关于监控的指标和界面展示官方文档已经很详细了,这里不再赘述。值得一提的是,要使用该模板插件,需要部署kube-state-mertics和node-exporter以及prometheus,grafa...转载 2018-09-12 11:12:45 · 4021 阅读 · 1 评论 -
ETCD 简介 + 使用
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文...转载 2018-09-10 09:19:50 · 115422 阅读 · 9 评论 -
Kubernetes配置flannel网络
操作环境网络拓扑图 操作步骤配置k8s-master1.在k8s-master节点上创建flannel网络[root@k8s-master yaml]# etcdctl mk /atomic.io/network/config '{"Network": "172.17.0.0/16"}'2.配置flannel [root@k8s-master yaml...转载 2018-09-12 22:00:58 · 1910 阅读 · 0 评论 -
Kubernetes之YAML文件
YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。后文会说明定义YAML文件创建Pod和创建Deployment。 YAML语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tal键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 ...转载 2018-09-09 13:02:19 · 942 阅读 · 0 评论 -
Kubernetes集群中使用calico做网络驱动
参照calico官网,有几种安装方式https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/calico原创 2018-09-12 22:09:17 · 831 阅读 · 0 评论 -
kubetnetes 之存储 PV PVC
概述 k8s最初用于管理无状态的服务,单随着越来越多的应用迁移的k8s平台,管理存储资源成为一个非常重要的功能。k8s使用两种资源管理存储:PersistentVolume(一些简称PV):由管理员添加的的一个存储的描述,是一个全局资源,包含存储的类型,存储的大小和访问模式等。它的生命周期独立于Pod,例如当使用它的Pod销毁时对PV没有影响。PersistentVolumeCla...转载 2018-09-07 08:53:45 · 523 阅读 · 0 评论 -
prometheus简介
一、prometheus简介1.1 什么是prometheusprometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包 。从2012年开始,许多公司和组织开始使用Prometheus,该项目拥有非常活跃的开发人员和用户社区。目前它是一个独立的开源项目,并且不依赖与任何公司。为了强调这一点,并澄清项目的治理结构,Prometheus在2016年加入Cloud...转载 2018-09-18 21:09:22 · 5155 阅读 · 0 评论 -
Kubernetes集群监控Promethues+Grafana
我们选择Prometheus作为监控系统主要在以下各层面实现监控:基础设施层:监控各个主机服务器资源(包括Kubernetes的Node和非Kubernetes的Node),如CPU,内存,网络吞吐和带宽占用,磁盘I/O和磁盘使用等指标。 中间件层:监控独立部署于Kubernetes集群之外的中间件,例如:MySQL、Redis、RabbitMQ、ElasticSearch、Nginx等。...转载 2018-09-10 09:20:29 · 2281 阅读 · 0 评论 -
使用 Spinnaker 自动化部署代码到 Kubernetes 示例
1、示例说明通过 初试 Netflix 开源持续云交付平台 Spinnaker 和 初试 Kubernetes 集群中 Spinnaker 平台之集群管理 两篇文章的介绍,我们初步了解 Spinnaker 的集群管理和部署功能两大核心功能,但是都是单独演示,没有将两者有机结合起来,今天,我们来通过一个示例来演示如何通过 Spinnaker 结合外部平台完成整个流程的自动化构建以及自动化部署到 ...转载 2018-09-18 21:09:47 · 1021 阅读 · 0 评论 -
Kubernetes之Network Policy
概述Kubernetes要求集群中所有pod,无论是节点内还是跨节点,都可以直接通信,或者说所有pod工作在同一跨节点网络,此网络一般是二层虚拟网络,称为pod网络。在安装引导kubernetes时,由选择并安装的network plugin实现。默认情况下,集群中所有pod之间、pod与节点之间可以互通。网络主要解决两个问题,一个是连通性,实体之间能够通过网络互通。另一个是隔离性,出于安...转载 2018-09-09 13:04:40 · 1387 阅读 · 0 评论 -
kubernetes之kube-proxy工作原理和源码分析
本文对kube-proxy做了一些总结说明,对其内部的实现原理进行了研究,并对userspace和iptables两种mode的缺点进行的描述,都通过例子说明了iptable的工作。在下一篇博文中,我将对k8s v1.5中kube-proxy的源码进行分析,有兴趣的同学可以关注。kube-proxy和service背景说到kube-proxy,就不得不提到k8s中service,下面对...转载 2018-09-09 13:11:29 · 1762 阅读 · 0 评论 -
Kubernetes组件之kube-controller-manager
1. Controller Manager简介Controller Manager作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群...转载 2018-09-09 13:32:53 · 14961 阅读 · 2 评论 -
kubernetes之Scheduler
kubernetes Scheduler 简介kubernetes Scheduler 运行在 master 节点,它的核心功能是监听 apiserver 来获取 PodSpec.NodeName 为空的 pod,然后为每个这样的 pod 创建一个 binding 指示 pod 应该调度到哪个节点上。从哪里读取还没有调度的 pod 呢?当然是 apiserver。怎么知道 pod 没有...转载 2018-09-09 13:41:04 · 661 阅读 · 0 评论 -
kubernetes上的服务发现-CoreDNS配置
一、CoreDNS简介Kubernetes包括用于服务发现的DNS服务器Kube-DNS。 该DNS服务器利用SkyDNS的库来为Kubernetes pod和服务提供DNS请求。SkyDNS2的作者,Miek Gieben,创建了一个新的DNS服务器,CoreDNS,它采用更模块化,可扩展的框架构建。 Infoblox已经与Miek合作,将此DNS服务器作为Kube-DNS的替代品。Co...转载 2018-09-09 13:54:04 · 4797 阅读 · 0 评论 -
minikube本地部署运行 kubernetes 实例
1、kubernetes 介绍Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流行的 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能。而就在日前 DockerCon 欧洲大会上, Docker 宣布拥抱支持 Kubernetes,Docker 公司计划提供一个无缝平台,同时支持包含 Swarm 和 Kubernetes...转载 2018-09-09 14:22:53 · 4768 阅读 · 1 评论 -
Kubernetes 集群中ingress使用Traefik反向代理
1、Traefik 介绍在日常工作中,我们经常使用 Nginx、Apache 等工具作为反向代理、负载均衡,而 Træfik 是一个为了让部署微服务更加便捷而诞生的 HTTP 反向代理、负载均衡工具。它支持多种后台 (Docker、Swarm、Kubernetes、Mesos、Consul、Etcd…) 来自动、动态的刷新配置文件,以实现快速地服务发现。在 Kubernetes 集群中使用,...原创 2018-09-09 14:25:37 · 2404 阅读 · 0 评论 -
Kubernetes 集群中使用 Helm 搭建 Spinnaker 平台
1、Helm 介绍Helm 是一个管理 Kubernetes Charts 的工具,Charts 可以理解为预先配置的 Kubernetes 资源包,通过 Helm 可以轻松的安装和管理 Kubernetes 应用,类似我们平时使用的 apt、yum、homebrew 工具。Helm 包含两部分:客户端 Helm 和服务端 Tiller,服务端 Tiller 运行在 Kubernetes 集...转载 2018-09-18 21:09:40 · 679 阅读 · 0 评论 -
Kubernetes存储系统介绍及机制实现
一、Kubernetes中存储的应用场景在Kubernetes中部署和运行的服务大致分为:1. 无状态服务Kubernetes使用ReplicaSet来保证一个服务的实例数量,如果说某个Pod实例由于某种原因挂掉或崩溃,ReplicaSet会立刻用这个Pod的模版新启一个Pod来替代它。由于是无状态的服务,新Pod与旧Pod一模一样。此外Kubernetes通过Service(一个Se...转载 2018-09-13 21:32:00 · 374 阅读 · 0 评论 -
kubeconfig的用法及生成配置文件
kubectl默认会从$HOME/.kube目录下查找文件名为 config 的文件,也能通过设置环境变量 KUBECONFIG 或者通过设置去指定其它 kubeconfig 文件。kubeconfig就是为访问集群所作的配置。在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。命...原创 2018-09-20 16:42:36 · 31307 阅读 · 0 评论 -
kubernetes集群资源管理之Node、Namespace、Lable、Annotation、Taint和Toleration
NodeNode是kubernetes集群的工作节点,可以是物理机也可以是虚拟机。Node的状态Node包括如下状态信息:Address HostName:可以被kubelet中的--hostname-override参数替代。 ExternalIP:可以被集群外部路由到的IP地址。 InternalIP:集群内部使用的IP,集群外部无法访问。 Condition...转载 2018-09-27 15:39:46 · 4705 阅读 · 0 评论 -
在kubernetes集群中部署nginx+mysql+php应用
本文将介绍在kubernetes环境中部署一套php应用系统。前端web采用nginx、中间件php以fastcgi的方式运行,后台数据库由mysql主从提供支撑。各服务组件之间的调用采用dns解析服务名的方式进行,数据和配置文件持久化采用hostPath。一、通过dockerfile创建php镜像文件# cat dockerfile FROM docker.io/openshift...原创 2018-10-09 10:21:43 · 9359 阅读 · 2 评论 -
ReplicationController与Deployment的关系
ReplicationControllerReplication Controller为Kubernetes的一个核心内容,应用托管到Kubernetes之后,需要保证应用能够持续的运行,Replication Controller就是这个保证的key,主要的功能如下:确保pod数量:它会确保Kubernetes中有指定数量的Pod在运行。如果少于指定数量的pod,Replication ...转载 2018-10-08 10:02:42 · 7751 阅读 · 1 评论 -
快速安装Kubernetes集群与Django应用示例
k8s使用实例以web应用为例django后端 + postgresql + redis使用k8s需要搭建私有的镜像仓库,一些基础的应用镜像可以从docker hub上直接拉取,但是自己的包含代码的项目镜像需要提前打包好上传到自己的镜像仓库,k8s不能像docker-compose那样通过Dockerfile直接生成镜像应确保master,node1,node2三个节点都能从你的私...转载 2018-11-05 08:44:46 · 3211 阅读 · 2 评论 -
kubeadm命令
Usage: kubeadm [command]Available Commands: alpha Experimental sub-commands not yet fully functional. completion Output shell completion code for the specified shell (bash or zsh). co...原创 2018-12-15 11:06:38 · 7203 阅读 · 1 评论 -
kubernetes控制器之DaemonSet
什么是 DaemonSet?DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。使用 DaemonSet 的一些典型用法:运行集群存储 daemon,例如在每个 Node 上运行 gluste...转载 2018-09-27 15:09:52 · 4196 阅读 · 0 评论 -
Etcd在kubernetes集群中的作用
Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。在后面具体的安装环境中,我们安装的etcd的版本是v3.1.5,整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是:网络插件flannel、对于其它网络插件也需要用到etcd存储网络的配置信息 kubernetes本身,包括各种对象的状态和元信息配置注意...转载 2018-09-27 14:38:34 · 18629 阅读 · 1 评论 -
kubernetes使用ceph作为存储挂载
一、在ceph集群上操作:1、创建池(主要使用存储类来进行持久卷的挂载,其他的挂载方式不好使也太麻烦):ceph osd pool create k8s 64二、在k8s上操作:1、安装客户端(客户端版本与ceph集群的版本最好一致,不然创建image的时候死活创建不了):给yum增加一个Ceph源(这里以网易源为例)。tee /etc/yum.repos.d/ceph...转载 2018-09-24 22:03:12 · 2044 阅读 · 3 评论 -
使用traefik作为ingress controller透出集群中的https后端
简介对于k8s集群中的http/https服务,一种常见的设计是集群内部走http协议,然后在ingress controller处统一管理TLS证书,并负责接受外部的https请求,以及将内部的http响应统一转换为https发回客户端,这样既能降低集群内部通信的复杂度,又能保证集群服务的安全性。然而对于诸如kubernetes/dashoboard一类的服务,使用其默认的部署配置启动的...转载 2018-09-24 22:04:59 · 2598 阅读 · 0 评论 -
kubernetes之metrics-server安装与配置
一、metrics-server简介从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster。Metrics Server 实现了Resource Metrics API,Metrics Server 是集群范围资源使用数据的聚合器。 Metric...原创 2018-09-24 22:07:28 · 15218 阅读 · 0 评论 -
Kubernetes集群部署tomcat容器/Java web应用流程
kube-tomcat.yaml实现如下。这里是把Deployment和Services在一个文件中实现了。也可以分为两个文件来实现。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20...转载 2018-09-11 10:23:36 · 2889 阅读 · 0 评论 -
Kubernetes之kubectl常用命令:故障排查和故障解决
kubectl故障排查相关常用命令编号 命令 说明 1 version 显示客户端和服务器侧版本信息 2 api-versions 以group/version的格式显示服务器侧所支持的API版本 3 explain 显示资源文档信息 4 get 取得确认对象信息列表 5 describe 取得确认对象...原创 2018-09-20 21:02:44 · 13197 阅读 · 1 评论 -
利用 Helm部署 Ingress
Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式。部署 Ingress ControllerIngress 只是一个统称,其由 Ingress 和 Ingress Controller 两部分组成。Ingress 用作将原来需要手动配置的规则抽象成一个 Ingress 对象,使用 YAML 格式的文件来创建和管理。Ingres...转载 2018-09-27 10:17:47 · 7180 阅读 · 0 评论 -
ingress-nginx部署及配置https
1、Ingress在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes中可以通过NodePort和LoadBalancer这两种类型的服务,或者使用Ingress。Ingress本质是通过http代理服务器将外部的http请求转发到集群内部的后端服务。2、ingress-nginx...原创 2018-10-04 21:42:15 · 22479 阅读 · 2 评论 -
kubernetes 功能介绍
kubernetes 的马洛斯需求kubernetes 架构图kubernetes 主要基本概念和术语 master Kubernets API server,提供 Kubernets Controlle Manager (kube-controller-manager),kubernets 里面所有资源对象的自动化控制中心,可以理解为资源对象的大总...转载 2018-09-13 22:32:34 · 3997 阅读 · 0 评论 -
Centos7使用yum方式部署Kubernetes1.5集群
1、环境介绍及准备:1.1 物理机操作系统 物理机操作系统采用Centos7.3 64位,细节如下。[root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GN...转载 2018-08-17 14:05:49 · 2718 阅读 · 0 评论 -
kubernetes之helm简介、安装、配置、使用指南
目录helm简介Helm 组件及相关术语HelmTillerChartRepoistoryReleaseHelm工作原理helm部署一、Helm 客户端安装二、Helm 服务端安装Tiller三、给 Tiller 授权四、验证 Tiller 是否安装成功五、卸载 Helm 服务器端 Tiller六、Helm 使用Helm Chart ...原创 2018-08-22 16:03:38 · 137352 阅读 · 18 评论 -
Kubernetes之kubectl命令行工具简介、安装配置及常用命令
kubectl概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。运行kubectl命令的语法如下所示:$ kubectl [command] [TYPE] [NAME] [flags]comand:指定要对资源执行的操作,例如create、get、describe和deleteTYPE:指定...原创 2018-08-08 16:56:50 · 56718 阅读 · 0 评论 -
二进制包部署管理Kubernetes集群
K8S集群部署有几种方式:kubeadm、minikube和二进制包。前两者属于自动部署,简化部署操作,自动部署屏蔽了很多细节,使得对各个模块感知很少。这篇文章是使用二进制包部署Kubernetes集群。一、架构拓扑图二、环境规划 角色 IP 组件 master 192.168.0.211...原创 2017-11-21 14:11:00 · 3819 阅读 · 1 评论 -
Kubernetes 1.8.x 全手动安装教程
Kubernetes 提供了许多云端平台与操作系统的安装方式,本章将以全手动安装方式来部署,主要是学习与了解 Kubernetes 创建流程。若想要了解更多平台的部署可以参考 Picking the Right Solution来选择自己最喜欢的方式。本次安装版本为:Kubernetes v1.8.2 Etcd v3.2.9 Calico v2.6.2 Docker v17.10.0...原创 2018-01-22 09:21:03 · 1198 阅读 · 0 评论