Kube

kubernetes基础概念知多少

…衆ロ難τιáo~ 提交于 2020-05-02 11:07:20
kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理容器应用的生命周期。通过k8s,用户可以定义程序运行方式、部署升级策略、动态伸缩容,使得用户以一种更灵活可靠的方式来管理应用程序。 关于k8s,是一种对应用服务的打包、部署、监控等一整套生命周期的自动化管理平台,目前各大公司已在生产环境部署使用,同时k8s社区比较活跃,在未来一段时间内会越来越流行,可以说是以后服务部署的事实标准,对于Java开发者来说,你可以不直接使用它,但是不能不了解它。 总结来看,k8s特点如下: 自动装箱 :基于容器,结合调度策略将多种应用部署到同一节点上,提高资源利用率; 自我修复 :支持故障转移/重启,具有健康检查机制; 水平扩展 :通过命令手动执行扩容,可基于CPU等资源负载率来动态实现伸缩容; 服务发现/负载均衡 :通过KubeDNS(或CoreDNS)为系统内置了服务发现功能,为每个service配置DNS名称,service通过iptables或ipvs内建了负载均衡机制; 自动部署 :自动发布和回滚,支持灰度、增量发布等; 配置管理 :ConfigMap实现了配置数据与Docker镜像解耦,为开发部署提供了良好的灵活性; 批处理 :除了管理服务型应用之外,Kubernetes还支持批处理作业及CI(持续集成)

kubeadm安装Kubernetes 1.14最佳实践

我们两清 提交于 2020-05-02 11:05:51
前言 Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐。很多新手部署Kubernetes由于“上网”问题举步维艰,本文以实战经验详解kubeadm不用“翻墙”部署Kubernetes的最简方法。 一、Kubernetes简介 Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。 K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。 二、环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 10.10.10.10 master >=2c >=2G master sda、sdb 10.10.10.11

kubernetes系列:(一)、kubeadm搭建kubernetes(v1.13.1)单节点集群

眉间皱痕 提交于 2020-05-02 11:04:50
kubeadm是Kubernetes官方提供的用于快速部署Kubernetes集群的工具,本篇文章使用kubeadm搭建一个单master节点的k8s集群。 节点部署信息 节点主机名 节点IP 节点角色 操作系统 k8s-master 10.10.55.113 master centos7.6 k8s-node1 10.10.55.114 node centos7.6 节点说明 master:控制节点。kube-apiserver负责API服务,kube-controller-manager负责容器编排,kube-scheduler负责调度 node:工作节点。kubelet 主要负责同容器运行时(比如 Docker 项目)打交道。而这个交互所依赖的,是一个称作 CRI(Container Runtime Interface)的远程调用接口,这个接口定义了容器运行时的各项核心操作,比如:启动一个容器需要的所有参数 master核心组件 node核心组件 kube-apiserver kubelet kube-controller-manager kube-scheduler 一、基础环境准备 以下操作无特殊说明均在每个节点执行。 修改主机名 #master节点: hostnamectl set -hostname k8s- master #node1节点: hostnamectl

002.使用kubeadm安装kubernetes 1.17.0

允我心安 提交于 2020-05-02 11:02:40
一 环境准备 1.1 环境说明 master 192.168.132.131 docker-server1 node1 192.168.132.132 docker-server2 node2 192.168.132.133 docker-server3 1.2 docker版本 [root@docker-server1 ~]# docker version Client: Docker Engine - Community Version: 19.03 . 5 API version: 1.40 Go version: go1. 12.12 Git commit: 633a0ea Built: Wed Nov 13 07 : 25 : 41 2019 OS /Arch: linux/ amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03 . 5 API version: 1.40 (minimum version 1.12 ) Go version: go1. 12.12 Git commit: 633a0ea Built: Wed Nov 13 07 : 24 : 18 2019 OS /Arch: linux/ amd64 Experimental: false

在linux通过kubeadm搭建kubernetes群集

混江龙づ霸主 提交于 2020-05-02 10:31:05
kubeadm是一个命令行的工具,它简化了创建和管理kubernetes cluster的步骤。kubeadm利用Docker的功能进行快速的部署,支行kubernetes master和etcd服务器作为系统服务是以容器的方式呈现的。当触发kuberadm命令时,容器服务将会直接联系在kubernetes node上的Kubelet.kubadm也会检查每个组件是否健康。通过kubeadm设置步骤,你可以避免一连串的安装和配置命令。 一. 搭建群集之前以下条件需要满足: 1. 每个节点都有唯一的MAC地址和产品UUID:一些插件使用MAC 地址和产品UUID作为唯一的主机标识(比如,kube-dns),假如它们在群集中重复的话,kubeadm可能不会工作 。 //check MAC address of your NIC $ ifconfig –a //check the product UUID on your host $ sudo cat /sys/class/dmi/id/product_uuid 2. 每个接点都有不同的主机名字:假如主机名称重复的话,kubernetes系统可能从多个主机收集日志或者状态,会被认为是一个。 3. Docker的安装 4. 有效的网络端口,要避免端口重复等情况。 Node role Ports System service Master

使用kubeadm安装kubernetes

♀尐吖头ヾ 提交于 2020-05-02 10:30:27
安装kubenetes的方法有多种,本文将介绍如何用kubeadm安装kubernetes。 一 node准备 1 /etc/hosts文件 192.168.235.133 kube01 192.168.235.134 kube02 192.168.235.135 kube03 2 关闭swap swapoff -a 注释/etc/fstab中的swap挂载 #/dev/mapper/centos-swap swap swap defaults 0 0 3 修改内核参数 cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system 4 安装docker yum install docker -y systemctl enable docker systemctl start docker 二 安装kubeadm 1 增加yum的repo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum

Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统

北慕城南 提交于 2020-05-02 05:54:47
<div id="cnblogs_post_body" class="blogpost-body "> <h1 class="entry-title">Prometheus 持久化安装</h1> <p>我们prometheus采用nfs挂载方式来存储数据,同时使用configMap管理配置文件。并且我们将所有的prometheus存储在<code>kube-system</code></p> <div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></span></div> <pre><span style="color: #000000;">#建议将所有的prometheus yaml文件存在一块 </span><span style="color: #0000ff;">mkdir</span> /opt/prometheus -p && cd /opt/<span

k8s 容器的资源需求,资源限制-监控-资源指标API及自定义指标API

﹥>﹥吖頭↗ 提交于 2020-05-02 04:37:36
POD资源: requests:需求,最低保障 limits:限制,硬限制 CPU: 一颗逻辑CPU(一个核心) 1=1000微核,millicores 500m=0.5CPU 内存: E、P、T、G、M、K Ei、Pi、Ti、Gi、Mi、Ki、 Qos: Guranteed:最高优先级, 确保、保证 同时设置了CPU和内存的requests和limits, cpu.limits=cpu. requests memory.limits=memory.limits Burstable:中间优先级, 至少有一个容器设置CPU或者内存资源requests的属性,当内存资源比较紧缺时将requests分配占用较大的停止 cpu.limits>cpu. requests memory.limits>memory.limits BestEffort:最低优先级, 自动配置,当内存资源比较紧缺时,BestEffort会被优先退出,确保其他类型的正常运行 没有任何一个设置 resources: limits: memory: 1024Mi cpu: 2 requests: cpu: 500m memory: 512Mi HeapSter:(新版本被整合在kubernetes内部,kube1.1后废弃) cAdvisor:收集各node节点上面内存,硬盘,cpu的资源,可以在单节点上面查看采集的结果

Docker环境安装KubernetesV1.15.5

前提是你 提交于 2020-05-02 04:29:15
前言:系统MacOS、Docker安装启动完成、我这里使用Portainer做界面管理、github上面下载该项目https://github.com/AliyunContainerService/k8s-for-docker-desktop.git分支为V1.15.5;安装步骤参考说明文档 一、Docker环境替换镜像地址为阿里云镜像加速或者国内镜像地址、创建token.sh 二、安装portainer: https://my.oschina.net/wubiaowpBlogShare/blog/1811873 三、切换到项目目录下执行:sh ./load_images.sh下载镜像 四、打开Docker工具勾选开启Kubernetes 六、查看容器是否创建成功: http://localhost:9000/#/containers 七、切换上下文创建运行POD 八、访问dashboard: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=kube-system 、获取登录令牌登录管理界面 来源: oschina 链接: https://my.oschina.net

prometheus-(二).监控集群

只谈情不闲聊 提交于 2020-05-02 02:14:55
[TOC] 一.node_exporter监控集群节点 通过prometheus来采集节点的监控指标,可以通过node_exporter获取,node_exporter就是抓取用于采集服务器节点的各种运行指标,目前node_exporter几乎支持所有常见的监控点,比如cpu、distats、loadavg、meminfo、netstat等,详细的监控列表可以参考github repo 这里使用DeamonSet控制器来部署该服务,这样每一个节点都会运行一个Pod,如果我们从集群中删除或添加节点后,也会进行自动扩展 1.node-exporter.yaml # cat >>prometheus-node-exporter.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: kube-system labels: name: node-exporter spec: selector: matchLabels: name: node-exporter template: metadata: labels: name: node-exporter spec: hostPID: true hostIPC: true hostNetwork: true containers: -