二进制安装k8s1.19.8及prometheus监控

本文详细介绍了在CentOS 7.6上二进制安装kubernetes 1.19.8的全过程,包括环境准备、docker安装、etcd集群搭建、kubernetes组件部署等。接着,文章转向了基于k8s安装Prometheus,涵盖下载文件、修改配置以及部署监控组件。在k8s安装过程中,提到了可能遇到的问题及其解决方案,确保了Prometheus监控的正常运行。
摘要由CSDN通过智能技术生成

目录

机器规划(CentOS 7.6  内核3.10+)

一、二进制安装kubernetes

1、环境准备(每台主机都执行)

2、安装docker(每台主机都执行)

3、搭建etcd集群(master1节点执行)

4、kubernetes组件部署

5、 部署kubelet

6、部署kube-proxy

7、配置网络组件calico

 8、部署coredns

9、安装K8S遇到的问题

 二、基于k8s安装Prometheus

1、下载Prometheus文件(prometheus-operator)

2、修改配置文件

 3、创建monitoring 名称空间并安装prometheus-operator


机器规划(CentOS 7.6  内核3.10+)

k8s网络环境规划:

  • k8s版本:v1.19.8

  • Pod网段:10.0.0.0/16

  • Service网段:10.255.0.0/16

docker版本:19.03.9

hostname    ip  k8s节点 机器配置
k8s-master-01 192.168.10.10 master 2C4G
k8s-master-02 192.168.10.11 master 2C4G
k8s-master-03 192.168.10.12 master 2C4G
k8s-node-01 192.168.10.13 node 2C4G
k8s-node-02 192.168.10.14 node 2C4G
负载均衡VIP 192.168.10.100

一、二进制安装kubernetes

1、环境准备(每台主机都执行)

1)修改host主机名

hostname master1
hostname master2
hostname master3
hostname node1
hostname node2

2)配置hosts文件

cat >>/etc/hosts <<EOF
192.168.10.10 master1
192.168.10.11 master2
192.168.10.12 master3
192.168.10.13 node1
192.168.10.13 node2
EOF

3)关闭防火墙和selinux

systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4)关闭交换分区

swapoff -a
sed -i 's/^[^#].*swap*/#&/g' /etc/fstab

5)时间同步

yum install -y chrony
systemctl start chronyd
systemctl enable chronyd
chronyc sources

6)加载ipvs模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4
yum install -y ipvsadm

7)修改内核参数

# 加载br_netfilter模块

modprobe br_netfilter

#验证模块是否加载成功

lsmod |grep br_netfilter

#修改内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

#使刚才修改的内核参数生效

sysctl -p /etc/sysctl.d/k8s.conf

#设置文件描述符

echo '*               -       nofile          65535' >> /etc/security/limits.conf

2、安装docker(每台主机都执行)

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io

1)命令自动补全

yum -y install bash-completion
source /etc/profile.d/bash_completion.sh

systemctl start docker && systemctl enable docker && systemctl status docker

2)设置仓库源和驱动(下述源为国内加速源)

cat > /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": [
        "https://1nj0zren.mirror.aliyuncs.com",
        "https://kfwkfulq.mirror.aliyuncs.com",
        "https://2lqq34jg.mirror.aliyuncs.com",
        "https://pee6w651.mirror.aliyuncs.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://f1361db2.m.daocloud.io",
        "https://registry.docker-cn.com"
    ]
}
EOF

3)下载镜像

#阿里云版本
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0

#官方版本
docker pull coredns/coredns:1.8.4
docker pull k8s.gcr.io/pause:3.2

 

3、搭建etcd集群(master1节点执行)

1)配置工具目录及免密登录

mkdir -p /data/work
ssh-keygen -t rsa -b 2048
ssh-copy-id master-02
ssh-copy-id master-03
ssh-copy-id node-01
ssh-copy-id node-02

#配置etcd工作目录
mkdir -p /var/lib/etcd/default.etcd
mkdir -p /etc/etcd/ssl

2)创建etcd证书 

cfssl证书Github网址:https://github.com/cloudflare/cfssl

wget https://hub.fastgit.org/cloudflare/cfssl/releases/download/v1.6.0/cfssl-certinfo_1.6.0_linux_amd64
wget https://hub.fastgit.org/cloudflare/cfssl/releases/download/v1.6.0/cfssljson_1.6.0_linux_amd64
wget https://hub.fastgit.org/cloudflare/cfssl/releases/download/v1.6.0/cfssl_1.6.0_linux_amd64

chmod +x cfssl*
mv cfssl_1.6.0_linux_amd64 /usr/local/bin/cfssl
mv cfssljson_1.6.0_linux_amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_1.6.0_linux_amd64 /usr/local/bin/cfssl-certinfo

#创建ca请求证书 

cat > ca-csr.json <<EOF
{
  "CN": "kubernetes",
  "key": {
      "algo": "rsa",
      "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "Hubei",
      "L": "Wuhan",
      "O": "k8s",
      "OU": "system"
    }
  ],
  "ca": {
          "expiry": "87600h"
  }
}
EOF

cfssl gencert -initca ca-csr.json  | cfssljson -bare ca

#配置ca证书策略
cat > ca-config.json <<EOF
{
  "signing": {
      "default": {
          "expiry": "87600h"
        },
      "profiles": {
          "kubernetes": {
              "usages": [
                  "signing",
                  "key encipherment",
                  "server auth",
                  "client auth"
              ],
              "expiry": "87600h"
          }
      }
  }
}
EOF

#创建etcd请求csr文件 

cat > etcd-csr.json <<EOF
{
  "CN": "etcd",
  "hosts": [
    "127.0.0.1",
    "192.168.10.10",
    "192.168.10.11",
    "192.168.10.12"
  ],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [{
    "C": "CN",
    "ST": "Hubei",
    "L": "Wuhan",
    "O": "k8s",
    "OU": "system"
  }]
}
EOF

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson  -bare etcd
ls etcd*.pem

3)部署etcd集群

etcd Github网址:https://github.com/etcd-io/etcd/releases/

wget https://hub.fastgit.org/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz
tar -xf etcd-v3.4.13-linux-amd64.tar.gz
cp -p etcd-v3.4.13-linux-amd64/etcd* /usr/local/bin/
scp etcd-v3.4.13-linux-amd64/etcd* master2:/usr/local/bin/
scp etcd-v3.4.13-linux-amd64/etcd* master3:/usr/local/bin/

cat > etcd.conf <<EOF
#[Member]
ETCD_NAME="etcd1"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.10.10:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.10.10:2379,http://127.0.0.1:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.10.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.10.10:2379"
ETCD_INITIAL_CLUSTER="etcd1=https://192.168.10.10:2380,etcd2=https://192.168.10.11:2380,etcd3=https://192.168.10.12:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF

cat > etcd.service <<EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
EnvironmentFile=-/etc/etcd/etcd.conf
WorkingDirectory=/var/lib/etcd/
ExecStart=/usr/local/bin/etcd \
  --cert-file=/etc/etcd/ssl/etcd.pem \
  --key-file=/etc/etcd/ssl/etcd-key.pem \
  --trusted-ca-file=/etc/etcd/ssl/ca.pem \
  --peer-cert-file=/etc/etcd/ssl/etcd.pem \
  --peer-key-file=/etc/etcd/ssl/etcd-key.pem \
  --peer-trusted-ca-file=/etc/etcd/ssl/ca.pem \
  --peer-client-cert-auth \
  --client-cert-auth
Restart=on-failure
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

#同步相关文件到各个节点
cp ca*.pem /etc/etcd/ssl/
cp etcd*.pem /etc/etcd/ssl/
cp etcd.conf /et
要使用二进制安装Prometheus 和 Grafana 来监控 Kubernetes,您需要按照以下步骤进行设置: 1. 首先,您需要在 Kubernetes 集群中运行 Prometheus。您可以在每个节点上运行一个 Prometheus 实例,也可以使用 Prometheus Operator 在整个集群中运行多个实例。您可以从 Prometheus 官方网站下载二进制文件。 2. 配置 Prometheus,指定要监控的 Kubernetes 组件和指标。您可以创建一个 Prometheus 配置文件,定义要监控的目标和抓取规则。例如,您可以监控 Kubernetes API 服务器、节点指标、容器指标等等。 3. 启动 Prometheus 实例,并确保它可以连接到 Kubernetes 集群和要监控的组件。您可以使用命令行参数或环境变量来指定 Prometheus 的配置文件和目标。 4. 确保 Prometheus 正确抓取和存储指标数据。您可以访问 Prometheus 的 Web UI 或使用 PromQL 查询语言来检查指标数据。 5. 安装和配置 Grafana,以便可视化 Prometheus 中的指标数据。您可以从 Grafana 官方网站下载二进制文件,并根据需要进行自定义配置。 6. 在 Grafana 中创建仪表盘,并添加 Prometheus 数据源。您可以使用 Grafana 的界面来创建和编辑仪表盘,并使用 PromQL 查询语言来检索和呈现数据。 7. 在仪表盘中添加面板,并选择要显示的指标和图表类型。您可以根据需要创建各种类型的面板,例如图表、表格、仪表盘等。 通过以上步骤,您应该能够使用 Prometheus 和 Grafana 来监控 Kubernetes 集群,并可视化指标数据。请注意,这只是一个简单的概述,具体的配置和设置可能会根据您的需求和环境而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不忘丶初衷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值