Kube

Kubernetes核心概念整理

拈花ヽ惹草 提交于 2020-08-16 10:25:45
组件概述 以下是组件图 图片来源于: 此处 Kubernetes采用Master/Slave架构,主要包含如下组件: Master组件包含 API Server:API Gateway,用于和所有的组件进行交互的节点; Controller Manager:业务逻辑的控制中⼼,包含各类控制器模块 Scheduler: 对Pod进行实际调度 ETCD: 用于存储所有Kubernetes的元数据,KV存储 Slave组件 Kubelet: Node和Pod⽣生命周期管理 Kube-Proxy: Pod的对外服务发现代理 cAdvisor:容器监控,目前集成到了kubelet组件中 一般通过kubectl提交命令,然后通过APIServer存储到ETCD,再由各个组件进行watch并做相关处理。 核心资源大图 Pod: 一组容器,是kubernetes系统中的最⼩的调度单元,是直接处理业务的Workload; 应⽤用配置: ConfigMap: 可以存储相关的应用配置信息; Secret: 一般用于存储应用的秘钥信息,通过base64进行编码; PVC: 应用的持久化存储; 应⽤用服务发现: Service: Pod对外服务的负载均衡 Endpoints: 和Service⼀一⼀一对应,表示Pods的IP/Port信息 相关控制器: Deployment : 用于无状态应用的生命周期管理

第一章 Kubernetes进阶之Kubernetes简介

你离开我真会死。 提交于 2020-08-16 07:19:09
  Kubernets是什么 Kubernets是Google在2014年开源的一个容器集群管理系统,简称k8s K8s用于容器化应用程序部署,扩展和管理 K8s提供了容器编排,资源编排,弹性伸缩,部署管理,服务发现等一系列功能 K8s的目标是让容器部署更加简单高效   Kubernets的特性 自我修复 弹性伸缩 自动部署和回滚 服务发现和负载均衡 机密和配置管理 存储编排 批处理   Kunernetes集群架构与组件   Master 组件:   kube-apiserver :   Kubernetes API 集群的统一入口,各组件的协调者,以RESTful API提供接口方式,所有的对象资源的   增删改查和监听操作都交给APIServer处理后再提交给etcd数据库做持久化存储   Kube-controller-manager   处理集群中常规后台任务,一个资源对应一个控制器,而controllerManager就是负责处理这些控制器的   kube-scheduler   根据调度算法为新创建的pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上   etcd   分布式键值存储系统,用于保存集群状态数据,比如Pod,Service等对象信息   Node组件:   kubelet:   kubelet

附024.Kubernetes全系列大总结

≡放荡痞女 提交于 2020-08-16 07:18:12
Kubernetes全系列总结如下,后期不定期更新。 欢迎基于学习、交流目的的转载和分享,禁止任何商业盗用,同时希望能带上原文出处,尊重ITer的成果,也是尊重知识。 若发现任何错误或纰漏,留言反馈或右侧添加本人反馈。 正篇 001.Kubernetes简介 002.Kubernetes简单入门实例 003.Kubernetes二进制部署准备 004.Kubernetes二进制部署创建证书 005.Kubernetes二进制部署kubectl 006.Kubernetes二进制部署ETCD 007.Kubernetes二进制部署Flannel 008.Kubernetes二进制部署Nginx实现高可用 009.Kubernetes二进制部署kube-apiserver 010.Kubernetes二进制部署kube-controller-manager 011.Kubernetes二进制部署kube-scheduler 012.Kubernetes二进制部署worker节点Flannel 013.Kubernetes二进制部署worker节点Nginx实现高可用 014.Kubernetes二进制部署docker 015.Kubernetes二进制部署所有节点kubelet 016.Kubernetes二进制部署所有节点kube-proxy 017

Kubernetes单机开发环境部署记录

怎甘沉沦 提交于 2020-08-16 04:04:01
- Kubernetes官方推荐的集群并不适合在个人电脑上做Helm包开发使用,建议在PC上搭建单节点Kubernetes环境。 操作方式有以下几种: 1)使用官方的minikube工具部署; 2)使用官方的kubeadm工具仅部署一个master节点,然后将pod调度到master节点工作,所需命令是:kubectl taint node k8s-master node-role.kubernetes.io/master- 3)下载离线的Kubernetes二进制包,手动按需部署master节点,并将pod调度到master节点工作。本人搜集的Kubernetes1.8二进制包存放地址: https://pan.baidu.com/disk/home?#/all?vmode=list&path=%2Fkubernetes1.18%E9%95%9C%E5%83%8F 4)修改已经成熟的shell脚本一键部署工具,部署master节点。本人推荐基于IT波哥的1.15版本shell脚本进行修改本人的脚本存储在: https://pan.baidu.com/disk/home?#/all?vmode=list&path=%2Fkubernetes1.18%E9%95%9C%E5%83%8F ,当前波哥的新项目地址为: https://github.com/luckman666

Kubernetes单机部署之flanneldeployment

旧巷老猫 提交于 2020-08-16 02:02:22
早上从笔记本电脑的虚拟机共享目录VirtualLocalShare中找到了以前做实验用的kube-flannel.yml文件,特将这个文件传到台式机的虚拟机上,以完成昨日Kubernetes单机部署的flannel deployment。 由于国情原因,quay.io 是无法访问的,因此我找了个还能访问的国内镜像点,是李振良先生的提供的,不过flannel版本有点儿老,以下是我修改kube-flannel.yml后的文件内容: [root@kubernetes-master ~]# cat -n kube-flannel.yml 1 --- 2 kind: ClusterRole 3 apiVersion: rbac.authorization.k8s.io/v1beta1 4 metadata: 5 name: flannel 6 rules: 7 - apiGroups: 8 - "" 9 resources: 10 - pods 11 verbs: 12 - get 13 - apiGroups: 14 - "" 15 resources: 16 - nodes 17 verbs: 18 - list 19 - watch 20 - apiGroups: 21 - "" 22 resources: 23 - nodes/status 24 verbs: 25 - patch

kubernetes学习系列安装篇--第三篇:部署k8s集群- 单master

拈花ヽ惹草 提交于 2020-08-16 01:27:37
1.准备镜像 参考 第一篇,主要将社区的k8s需要的image拉取到国内 2.基础环境准备 参考 第一篇: 准备yum源,安装docker-ce 3.安装kube ==注:==第3步需要在master1,host1机器上执行 配置安装源 #vim /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=0 enable=1 安装kube yum clean all yum -y install kubeadm-1.18.2 kubelet-1.18.2 kubectl-1.18.2 #版本一定是1.18.2,和k8s image 版本一致 4.配置镜像仓库 ==注:==第4步需要在master1,host1机器上执行 mkdir -p /etc/docker vim /etc/docker/daemon.json 添加私有仓库 { "insecure-registries":["host7:2020"] # 更换成你的nexus主机名 } 启动docker systemctl start docker systemctl

k8s 容器内时间与服务器时间不一致的问题

时光怂恿深爱的人放手 提交于 2020-08-15 21:47:51
开发发现定时任务的执行时间和设置的时间相差8小时,之前处理方式是将错就错,后来发现这不是解决问题的办法所以上网找了找解决的方法 来到/etc/kubernetes/manifests目录,使用如下方式修改此目录下4个k8s的组件的时间 - mountPath: /etc/localtime name: date-config - hostPath: path: /etc/localtime name: date-config ## 修改完之后重启 k8s sudo systemctl restart kubelet sudo cat /etc/kubernetes/manifests/kube-apiserver.yam apiVersion: v1 kind: Pod metadata: annotations: kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.10.120:6443 creationTimestamp: null labels: component: kube-apiserver tier: control-plane name: kube-apiserver namespace: kube-system spec: containers: - command: -

验证Kubernetes YAML的最佳实践和策略

雨燕双飞 提交于 2020-08-15 13:22:03
本文来自 Rancher Labs Kubernetes工作负载最常见的定义是YAML格式的文件。使用YAML所面临的挑战之一是,它相当难以表达manifest文件之间的约束或关系。 如果你想检查所有部署到集群中的镜像是否从受信任的镜像仓库中提取应该怎么做?如何防止没有PodDisruptionBudgets的部署被提交到集群? 集成静态检查可以在接近开发生命周期的时候发现错误和策略违规。而且由于围绕资源定义的有效性和安全性的保证得到了改善,你可以相信生产工作负载是遵循最佳实践的。 Kubernetes YAML文件静态检查的生态系统可以分为以下几类: API验证器:这一类工具可以针对Kubernetes API服务器验证给定的YAML manifest。 内置检查器:这一类工具捆绑了安全、最佳实践等方面的意见检查。 自定义验证器:这一类工具允许用几种语言编写自定义检查,如Rego和Javascript。 在本文中,你将学习并比较六种不同的工具: Kubeval Kube-score Config-lint Copper Conftest Polaris 让我们开始吧! 验证Deployment 在开始比较工具之前,你应该设置一个基准。以下manifest并没有遵循最佳实践,可能存在一些问题,你能发现几个问题呢? apiVersion: apps/v1 kind:

kubernetes云平台管理实战:dashboard安装部署(十五)

喜欢而已 提交于 2020-08-15 10:01:16
一、实验准备 1、文件结构与组成 [root@master dashboard]# ll total 8 -rw-r--r-- 1 root root 1014 May 13 11:59 dashboard-deploy.yaml -rw-r--r-- 1 root root 274 May 13 11:43 dashboard-svc.yaml 2、具体内容 dashboard-deploy.yaml [root@master dashboard]# cat dashboard-deploy.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: # Keep the name in sync with image version and # gce/coreos/kube-manifests/addons/dashboard counterparts name: kubernetes-dashboard-latest namespace: kube-system spec: replicas: 1 template: metadata: labels: k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service:

Kubernetes容器集群管理环境

左心房为你撑大大i 提交于 2020-08-15 07:49:47
Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统。其设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群,Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。Kubernetes是一个用于容器集群的自动化部署、扩容以及运维的开源平台。 通过Kubernetes, 可以快速有效地响应用户需求: -> 快速而有预期地部署应用; -> 极速地扩展你的应用; -> 无缝对接新的应用功能; -> 节省资源,优化硬件资源的使用; Kubernetes功能特性: -> 自动化容器部署与复制 -> 随时扩展或收缩容器规模 -> 组织容器成组,提供容器间的负载均衡 -> 快速更新及回滚容器版本 -> 提供弹性伸缩,如果某个容器失效就进行替换 Kubernetes重要组件: 1)Master组件 Master节点上面主要由四个模块组成:APIServer、scheduler、controller manager、etcd -> APIServer : 负责对外提供RESTful的Kubernetes API服务,它是系统管理指令的统一入口,任何对资源进行增删改查的操作都要交给APIServer处理后再提交给etcd