组件
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
http://www.cnblogs.com/caiwenhao/p/6212360.html
相关推荐
如何找到有关可用插件的更多信息?有关可用插件的扩展列表,您可以参阅相关 Kubernetes 文档中标题为“插件”的部分。
Kubernetes 组件包括控制平面组件和数据平面组件。控制平面组件包括 API 服务器、调度程序、控制经理、云控制器经理等。数据平面组件包括库贝莱特、kube 代理、容器运行时等。了解 Kubernetes 组件的角色和交互是...
Kubernetes 集群安装是指将 Kubernetes 组件部署到多个节点上,形成一个可靠的集群系统。这个过程包括安装依赖包、设置防火墙、关闭 SELINUX、调整内核参数、调整系统时区、关闭系统不需要的服务、设置 rsyslogd 和 ...
1. **Kubernetes组件**: Kubernetes由多个组件组成,包括kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet和kube-proxy等。这些组件构成了Kubernetes控制平面,负责集群的管理和运行。YAML...
Kubernetes 实验室这个 repo 的目标是归档关于所有 Kubernetes 组件的注释和评论,其灵感来自于 TGIK grokking Kubernetes 系列。 这些笔记是官方文档、源代码注释、讲座和活动以及与讨论主题相关的任何材料的汇编。...
简单的Kubernetes测试环境简单的Kubernetes测试环境(sk8)项目是: 适用于开发和测试Kubernetes和核心Kubernetes组件的开发人员能够在通用Linux发行上部署任何的Kubernetes(+1.10) 设计用于部署单节点,多节点...
在描述中提到的"回购以练习和测试kubernetes组件",这里的"回购"可能指的是Git仓库,这意味着该项目提供了一系列的代码示例、脚本或配置文件,用于模拟实际环境中的Kubernetes操作。这种实践性的学习方法对于提升...
Kubernetes 部署文档中涵盖了安装 Docker、配置 Kubernetes 组件(如 etcd、kube-apiserver、kube-scheduler、kube-controller-manager 和 kubelet)以及设置网络策略等步骤。 **OpenStack Rocky 版本环境部署** ...
在本场景中,“kubernetes rpm安装包”指的是为RPM支持的Linux发行版(如CentOS、Fedora或RHEL)设计的Kubernetes组件的打包格式。 RPM包通常包含已编译的二进制文件、配置文件、依赖关系信息以及用于安装、卸载和...
將kubernetes二进制文件中的kubelet, kube-proxy拷贝到三个节点/opt/k8s/bin 可以用SCP命令 在master节点创建一个配置文档: vim configure.sh token”89a0bea35e38d0db7d8d25cfa4bb7f4d”参考上一篇 #! /bin/bash...
6. **安装Kubernetes组件**:利用SaltStack安装Kubernetes控制平面组件(如kube-apiserver、kube-controller-manager、kube-scheduler)和工作负载组件(如kubelet、kube-proxy)。 7. **Flannel网络配置**:在所有...
从 Kubernetes 的发展历程到其核心组件的解释,文档覆盖了 Kubernetes 的主要方面。 目录 1. Kubernetes 开篇 Kubernetes 是一种容器编排系统,主要用于自动部署、扩展和管理容器化应用程序。Kubernetes 的名称...
kubeadm 的工作原理是将 Kubernetes 的每一个组件都容器化,然后使用 Docker 容器来部署这些组件。这样,用户无需关心 Kubernetes 组件的编译、配置和启动等复杂问题。 kubeadm 的优点是简单易用、快速部署和高可...
* 安装Kubernetes组件 * 配置Kubernetes集群 * 部署应用程序 Kubernetes的优点包括: * 高度灵活和可扩展 * 自动化部署和管理 * 高可用和负载均衡 * 支持多种容器 runtime * 支持多种存储类型 * 支持多种网络模式 ...
标题中的“kubernetes镜像下载页”指的是一个提供Kubernetes组件镜像的下载页面,这些镜像是运行Kubernetes集群所必需的。 描述中的" kubelet-1.23.8 kubeadm-1.23.8 kubectl-1.23.8 "提到了三个关键的Kubernetes...
1. **系统准备**:确保系统是最新的,禁用Selinux(因为某些Kubernetes组件与Selinux可能存在兼容性问题),并安装必要的依赖,如Docker、etcd、kubelet、kubeadm、kubectl等。 2. **网络插件**:选择和安装合适的...
通过这个yaml文件,你可以定义Operator的配置,包括Calico的版本、网络策略规则以及与其他Kubernetes组件的交互方式。 2. **custom-resources.yaml**: 在Kubernetes中,自定义资源定义(Custom Resources ...
3. 配置和启动Kubernetes组件,如kubelet、kube-proxy等。 4. 创建和初始化集群,设置master和worker节点。 5. 部署应用程序和服务,享受Kubernetes带来的强大容器编排能力。 总的来说,Kubernetes 1.8.1 RPM包为...