在这个数字化时代,容器技术已经成为现代软件交付和部署的主流方式。Kubernetes(简称K8s)作为目前最流行的容器编排平台,极大地简化了容器化应用的管理和部署。而可视化监控则是确保容器集群稳定运行的重要手段。本文将带你一站式完成K8s的安装,并教你如何配置可视化监控,让容器管理更加简单直观。
一、K8s安装
1. 环境准备
在开始安装之前,请确保你的服务器满足以下要求:
- 操作系统:CentOS 7 或 Ubuntu 18.04
- CPU:至少 2 核
- 内存:至少 4GB
- 硬盘:至少 20GB 空间
- 网络环境:公网或内网均可
2. 安装Docker
K8s依赖于Docker,因此首先需要安装Docker。
CentOS 7:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
Ubuntu 18.04:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
3. 安装K8s
CentOS 7:
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-kubeadm-molecule
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubelet
sudo systemctl start kubelet
sudo systemctl enable kubelet
Ubuntu 18.04:
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo systemctl start kubelet
sudo systemctl enable kubelet
4. 初始化K8s集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
5. 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
二、可视化监控
1. 安装Prometheus
Prometheus是一个开源监控和警报工具,可以与K8s集成。
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://artifacts.micron.com/nexenta/prometheus/deb/prometheus.gpg.key | sudo apt-key add -
curl -L https://artifacts.micron.com/nexenta/prometheus/deb/prometheus.list | sudo tee /etc/apt/sources.list.d/prometheus.list
sudo apt-get update
sudo apt-get install -y prometheus
2. 配置Prometheus
编辑/etc/prometheus/prometheus.yml文件,添加以下内容:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'kubernetes-apiserver'
kubernetes_sd_configs:
- role: service
namespaces: ['kube-system']
scheme: https
tls_config:
ca_file: /etc/kubernetes/pki/ca.crt
bearer_token_file: /var/lib/kubelet/token
3. 安装Grafana
Grafana是一个开源的可视化工具,可以与Prometheus集成。
sudo apt-get install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
4. 配置Grafana
访问Grafana的Web界面(默认为http://localhost:3000),添加一个数据源,选择Prometheus。
创建一个仪表板,添加以下Grafana dashboard JSON:
{
"version": 1,
"title": "Kubernetes Dashboard",
"time": {
"from": "now-1h",
"to": "now"
},
"timezone": "browser",
"panels": [
{
"type": "graph",
"title": "CPU Usage",
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"links": []
}
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 0
},
"targets": [
{
"expr": "sum(kube_node_cpu_usage_seconds_total{mode=\"total\"}) by (node)",
"legendFormat": "CPU Usage ({node})"
}
]
},
{
"type": "graph",
"title": "Memory Usage",
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"links": []
}
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 5
},
"targets": [
{
"expr": "sum(kube_node_memory_usage_bytes{mode=\"total\"}) by (node)",
"legendFormat": "Memory Usage ({node})"
}
]
}
]
}
保存并刷新仪表板,即可看到K8s集群的CPU和内存使用情况。
三、总结
通过本文的介绍,相信你已经掌握了K8s的安装和可视化监控配置方法。在实际应用中,你可以根据自己的需求添加更多监控指标和仪表板。希望这篇文章能帮助你更好地管理K8s集群,提高容器化应用的稳定性。
