kubernetes组件
kubernetes组件
@(马克飞象)[k8s]
组件
kubernetes除了必备的dns和网络组件外,官方推出大量的
cluster-monitoring
,dashboard
,fluentd-elasticsearch
,node-problem-detector
,registry
官方提供的大部分组件,都以NodePort暴露服务,并且只允许在master节点上
heapster
k8s的监控组件,自动伸缩与及Dashboard 都依赖与它.
cd /data
git clone https://github.com/kubernetes/heapster.git
kubectl apply -f /data/heapster/deploy/kube-config/influxdb/
influxdb 默认没有配置数据持久化, 可以结合各自的数据持久化方案进行部署,以便保留监控历史
安装完heapster组件后,可以便捷使用
kubectl top node,
kubectl top pod 列出高负载的资源
kubectl top node -n kube-system
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
10-8-44-35 162m 4% 1045Mi 13%
10-8-50-182 77m 1% 1132Mi 14%
10-8-113-246 156m 3% 674Mi 8%
10-8-36-34 166m 4% 904Mi 11%
kubectl top pod -n kube-system
NAME CPU(cores) MEMORY(bytes)
kube-dns-2924299975-363jm 1m 32Mi
kube-apiserver-10-8-113-246 6m 84Mi
dummy-2088944543-05z36 0m 0Mi
kube-proxy-mcb3t 18m 18Mi
calico-policy-controller-shv0f 4m 16Mi
canal-node-rc2t6 2m 57Mi
dashboard
由kubernetes的UI演变而来, 目前已经集成监控展示与日常的创建与删除操作, 另一方面,可以通过ui界面来学习kubernetes的使用,认识常用的配置类型
https://github.com/kubernetes/dashboard#kubernetes-dashboard
kubectl get pods --all-namespaces | grep dashboard
kubectl get po,svc --all-namespaces | grep dashboard
kube-system po/kubernetes-dashboard-3095304083-ltq8k 1/1 Running 0 53s
kube-system svc/kubernetes-dashboard 10.105.98.204 <nodes> 80:32624/TCP 53s
通过10.105.98.204 进行访问
node-problem-detector
node经常会遇到以下问题:
- 硬件问题: cpu 内存 磁盘
- 内核问题: 内核死锁, 文件系统损坏
- 容器问题: 守护进程无响应
kubernetes集群管理对node的健康状态是无法感知的, pod依旧会调度到有问题的node上, 通过DaemonSet部署node-problem-detector, 向apiserver上报node的状态信息,使node的健康状态对上游管理可见,pod不会再调度到有异常的node上.
wget https://raw.githubusercontent.com/kubernetes/node-problem-detector/master/config/kernel-monitor.json
mkdir config
mv kernel-monitor.json config/
kubectl create configmap node-problem-detector-config --from-file=config/ -n kube-system
wget https://raw.githubusercontent.com/kubernetes/node-problem-detector/master/node-problem-detector.yaml
kubectl apply -f node-problem-detector.yaml -n kube-system
DNS Horizontal Autoscaler
根据apiserver获取集群的状态信息, 实现dns服务的水平扩展, 有助于提高dns的服务能力.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml
fluentd-elasticsearch
fluentd-elasticsearch 是kubernetes 官方提供的容器日志收集方案, 个人也认为,这是目前最好的面向kubernetes日志方案.官网的版本太旧,我制作了一个最新版本的, 只收集容器的日志.
git clone https://github.com/caiwenhao/kube-addons.git
cd kube-addons/fluentd-elasticsearch
kubectl apply -f es-deploy.yaml -f kibana-deploy.yaml -f es-deploy.yaml
kubectl label node 10-8-50-182 alpha.kubernetes.io/fluentd-ds-ready=true
- 通过elasticsearch-cloud-kubernetes,实现es在k8s集群上的部署.
- fluentd 的插件
fluent-plugin-kubernetes_metadata_filter
通过apiserver,当pod创建的时候,建立日志目录映射关系, 并解析kubernetes日志格式.
进一步优化
把fluent.conf放入configMap
kubectl create configmap fluent --from-file=./fluent.conf -n kube-system
kubernetes组件的更多相关文章
- 构建Docker平台【第三篇】安装 kubernetes 组件
第一步:准备 1. 安装包: kubeadm-1.6.0-0.alpha.0.2074.a092d8e0f95f52.x86_64.rpm kubernetes-cni-0.3.0.1-0.07a8a ...
- centos7下kubernetes(4.kubernetes组件)
Kubenetes cluster 由master和node组成 Master是kubenetes的大脑.运行着以下进程:kube-apiserver.kube-scheduler.kube-cont ...
- Kubernetes组件与架构
转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...
- Kubernetes【K8S】(一):Kubernetes组件
什么是Kubernetes Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.Kubernetes拥有一个庞大且快速增长的生态系统. ...
- 使用 C# 开发 Kubernetes 组件,获取集群资源信息
写什么呢 前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关. 体验地址 http ...
- Kubernetes组件-ReplicaSet
⒈简介 最初,ReplicationController是Kubernetes用于复制和在异常时重新调度节点的唯一组件,后来Kubernetes又引入了一个名为ReplicaSet的类似资源.它是新一 ...
- Kubernetes学习笔记之认识Kubernetes组件
前言:笔记知识点来源于Kubernetes官方文档说明,链接:https://kubernetes.io/docs/concepts/overview/components/ ,本记录仅仅是学习笔记记 ...
- Kubernetes 组件简介
关于Kubernetes是什么??? Kubernetes是致力于提供跨主机集群的自动部署.扩展.高可用以及运行应用程序容器的平台. Kubernets集群组成有哪些??? k8s由master和no ...
- Kubernetes组件介绍
一.api-server 基本概念 该端口默认值为6443,可通过启动参数"--secure-port"的值来修改默认值. 默认IP地址为非本地(Non-Localhost)网 ...
随机推荐
- Swift - 11 - nil聚合运算
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- JetBrains公司的IDE使用技巧
1.自定义Live Templates: 点击+添加自己的.最后记住要点击,change或default来设置在哪些文件上使用代码片段.
- js监听滚动条事件
(function () { if(document.addEventListener){ document.addEventListener('mousewheel',scrollFunc,fals ...
- Java基础--说集合框架
版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...
- PHP PDO获取结果集
一.介绍PDO获取结果集,不得不介绍一下PDO是如果执行SQL语句,一般情况下分三种, 1.query()方法 query()方法通常用于返回执行查询后的结果集.语法是这样的:PDOStatement ...
- SOA与EBS集成_Package 调用维护
介绍SOA Suite与EBS集成成,使用PACKAGE调用集成的组合程序的运维方法: 1.打开组合程序,在oracle adapter上右键,选择edit,在配置向导中跳转到第五步,确认组合程序调用 ...
- Objective-C内存管理与原理
尽管苹果在 iOS 5/ Mac OS X 10.7 开始导入ARC,利用 Xcode4.2 可以使用该机能.ARC就是自动引用计数,是一项为Objective - C程序在编译时提供自动内存管理的功 ...
- 关于jQuery表单校验的应用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 初涉JavaScript模式 (10) : 函数 【进阶用法】
写在前面 不知不觉写到第10篇了.这篇写起来很忐忑,终于和高级搭上边了(呵呵),这篇我们 主要 说一下 JS 方法的部分高级用法(我知道的),笔者水平有限,难免有错.废话不多少,进入正文. 初始化 我 ...
- ASP.NET 无权访问所请求的资源。请考虑对 ASP.NET 请求标识授予访问此资源的权限。
如题,在编译程序时,没有问题,但是通过iis设置的网站进入时,报如上错误.asp.net有个运行账户,一般情况下iis5为aspnet,iis6为network service,在iis里面确认一下是 ...