`
m635674608
  • 浏览: 5043156 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

kubernetes组件

 
阅读更多

组件

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上.

https://github.com/kubernetes/node-problem-detector

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
  1. 通过elasticsearch-cloud-kubernetes,实现es在k8s集群上的部署.
  2. fluentd 的插件fluent-plugin-kubernetes_metadata_filter 通过apiserver,当pod创建的时候,建立日志目录映射关系, 并解析kubernetes日志格式.

进一步优化

把fluent.conf放入configMap

kubectl create configmap fluent  --from-file=./fluent.conf -n kube-system

http://www.cnblogs.com/caiwenhao/p/6212360.html
分享到:
评论

相关推荐

    Kubernetes 面试问题:Kubernetes 组件

    如何找到有关可用插件的更多信息?有关可用插件的扩展列表,您可以参阅相关 Kubernetes 文档中标题为“插件”的部分。

    100 个 Kubernetes 面试问题,让你找到任何 Kubernetes 工作

    Kubernetes 组件包括控制平面组件和数据平面组件。控制平面组件包括 API 服务器、调度程序、控制经理、云控制器经理等。数据平面组件包括库贝莱特、kube 代理、容器运行时等。了解 Kubernetes 组件的角色和交互是...

    2+3+4、Kubernetes 集群安装+Kubernetes 资源清单+Deployment 控制器-V4.pdf

    Kubernetes 集群安装是指将 Kubernetes 组件部署到多个节点上,形成一个可靠的集群系统。这个过程包括安装依赖包、设置防火墙、关闭 SELINUX、调整内核参数、调整系统时区、关闭系统不需要的服务、设置 rsyslogd 和 ...

    Kubernetes-component-templates:Kubernetes组件的模板YAML文件

    1. **Kubernetes组件**: Kubernetes由多个组件组成,包括kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet和kube-proxy等。这些组件构成了Kubernetes控制平面,负责集群的管理和运行。YAML...

    k8s-labs:Kubernetes 组件和 CNCF 项目笔记

    Kubernetes 实验室这个 repo 的目标是归档关于所有 Kubernetes 组件的注释和评论,其灵感来自于 TGIK grokking Kubernetes 系列。 这些笔记是官方文档、源代码注释、讲座和活动以及与讨论主题相关的任何材料的汇编。...

    simple-k8s-test-env:适用于开发和测试Kubernetes和核心Kubernetes组件的开发人员

    简单的Kubernetes测试环境简单的Kubernetes测试环境(sk8)项目是: 适用于开发和测试Kubernetes和核心Kubernetes组件的开发人员能够在通用Linux发行上部署任何的Kubernetes(+1.10) 设计用于部署单节点,多节点...

    kubernetes-practice:回购以练习和测试kubernetes组件

    在描述中提到的"回购以练习和测试kubernetes组件",这里的"回购"可能指的是Git仓库,这意味着该项目提供了一系列的代码示例、脚本或配置文件,用于模拟实际环境中的Kubernetes操作。这种实践性的学习方法对于提升...

    Kubernetes与Zun调度编排融合研发环境汇总1

    Kubernetes 部署文档中涵盖了安装 Docker、配置 Kubernetes 组件(如 etcd、kube-apiserver、kube-scheduler、kube-controller-manager 和 kubelet)以及设置网络策略等步骤。 **OpenStack Rocky 版本环境部署** ...

    kubernetes rpm安装包

    在本场景中,“kubernetes rpm安装包”指的是为RPM支持的Linux发行版(如CentOS、Fedora或RHEL)设计的Kubernetes组件的打包格式。 RPM包通常包含已编译的二进制文件、配置文件、依赖关系信息以及用于安装、卸载和...

    Kubernetes部署Node组件

    將kubernetes二进制文件中的kubelet, kube-proxy拷贝到三个节点/opt/k8s/bin 可以用SCP命令 在master节点创建一个配置文档: vim configure.sh token”89a0bea35e38d0db7d8d25cfa4bb7f4d”参考上一篇 #! /bin/bash...

    linux-SaltStack自动化部署Kubernetes

    6. **安装Kubernetes组件**:利用SaltStack安装Kubernetes控制平面组件(如kube-apiserver、kube-controller-manager、kube-scheduler)和工作负载组件(如kubelet、kube-proxy)。 7. **Flannel网络配置**:在所有...

    1、Kubernetes 开篇-V1.pdf

    从 Kubernetes 的发展历程到其核心组件的解释,文档覆盖了 Kubernetes 的主要方面。 目录 1. Kubernetes 开篇 Kubernetes 是一种容器编排系统,主要用于自动部署、扩展和管理容器化应用程序。Kubernetes 的名称...

    10 Kubernetes一键部署利器:kubeadm.pdf

    kubeadm 的工作原理是将 Kubernetes 的每一个组件都容器化,然后使用 Docker 容器来部署这些组件。这样,用户无需关心 Kubernetes 组件的编译、配置和启动等复杂问题。 kubeadm 的优点是简单易用、快速部署和高可...

    Kubernetes安装.docx

    * 安装Kubernetes组件 * 配置Kubernetes集群 * 部署应用程序 Kubernetes的优点包括: * 高度灵活和可扩展 * 自动化部署和管理 * 高可用和负载均衡 * 支持多种容器 runtime * 支持多种存储类型 * 支持多种网络模式 ...

    kubernetes镜像下载页

    标题中的“kubernetes镜像下载页”指的是一个提供Kubernetes组件镜像的下载页面,这些镜像是运行Kubernetes集群所必需的。 描述中的" kubelet-1.23.8 kubeadm-1.23.8 kubectl-1.23.8 "提到了三个关键的Kubernetes...

    kubernetes安装脚本

    1. **系统准备**:确保系统是最新的,禁用Selinux(因为某些Kubernetes组件与Selinux可能存在兼容性问题),并安装必要的依赖,如Docker、etcd、kubelet、kubeadm、kubectl等。 2. **网络插件**:选择和安装合适的...

    Kubernetes1.25资源文件

    通过这个yaml文件,你可以定义Operator的配置,包括Calico的版本、网络策略规则以及与其他Kubernetes组件的交互方式。 2. **custom-resources.yaml**: 在Kubernetes中,自定义资源定义(Custom Resources ...

    Kubernetes 1.8.1 RPM包

    3. 配置和启动Kubernetes组件,如kubelet、kube-proxy等。 4. 创建和初始化集群,设置master和worker节点。 5. 部署应用程序和服务,享受Kubernetes带来的强大容器编排能力。 总的来说,Kubernetes 1.8.1 RPM包为...

Global site tag (gtag.js) - Google Analytics