网站优化方案范文,深圳网站建设公司哪家最好,城市分类信息网站建设,成都百度推广公司联系方式目录
基于Prometheus监控Kubernetes集群安装部署
一、环境准备
二、部署kubernetes集群
三、部署Prometheus监控平台
四、部署Grafana服务
五、grafana web操作 基于Prometheus监控Kubernetes集群安装部署
一、环境准备 IP地址 主机名 组件 192.168.100.131 k8s-ma…目录
基于Prometheus监控Kubernetes集群安装部署
一、环境准备
二、部署kubernetes集群
三、部署Prometheus监控平台
四、部署Grafana服务
五、grafana web操作 基于Prometheus监控Kubernetes集群安装部署
一、环境准备 IP地址 主机名 组件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168.100.133 k8s-node02 kubeadm、kubelet、kubectl、docker-ce
注意所有主机配置推荐CPU2C Memory2G
项目拓扑 1、主机初始化配置
所有主机配置禁用防火墙和selinux
[rootlocalhost ~]# setenforce 0[rootlocalhost ~]# iptables -F[rootlocalhost ~]# systemctl stop firewalld[rootlocalhost ~]# systemctl disable firewalld[rootlocalhost ~]# systemctl stop NetworkManager[rootlocalhost ~]# systemctl disable NetworkManager[rootlocalhost ~]# sed -i /^SELINUX/s/enforcing/disabled/ /etc/selinux/config 2、配置主机名并绑定hosts不同主机名称不同
[rootlocalhost ~]# hostname k8s-master[rootlocalhost ~]# bash[rootk8s-master ~]# cat EOF /etc/hosts192.168.100.131 k8s-master192.168.100.132 k8s-node01192.168.100.133 k8s-node02EOF [rootlocalhost ~]# hostname k8s-node01 [rootk8s-node01 ~]# cat /etc/hosts [rootlocalhost ~]# hostname k8s-node02 [rootk8s-node02 ~]#cat /etc/hosts 3、主机配置初始化
[rootk8s-master ~]# yum -y install vim wget net-tools lrzsz [rootk8s-master ~]# swapoff -a [rootk8s-master ~]# sed -i /swap/s/^/#/ /etc/fstab [rootk8s-master ~]# cat EOF /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF [rootk8s-master ~]# modprobe br_netfilter [rootk8s-master ~]# sysctl -p 4、部署docker环境
1三台主机上分别部署 Docker 环境因为 Kubernetes 对容器的编排需要 Docker 的支持。 [rootk8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [rootk8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 2使用 YUM 方式安装 Docker 时推荐使用阿里的 YUM 源。 [rootk8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3清除缓存 [rootk8s-master ~]# yum clean all yum makecache fast 4启动docker [rootk8s-master ~]# yum -y install docker-ce [rootk8s-master ~]# systemctl start docker [rootk8s-master ~]# systemctl enable docker 5镜像加速器所有主机配置 [rootk8s-master ~]# cat END /etc/docker/daemon.json { registry-mirrors:[ https://nyakyfun.mirror.aliyuncs.com ] } END 6重启docker [rootk8s-master ~]# systemctl daemon-reload [rootk8s-master ~]# systemctl restart docker 二、部署kubernetes集群
1、组件介绍
三个节点都需要安装下面三个组件 kubeadm安装工具使所有的组件都会以容器的方式运行 kubectl客户端连接K8S API工具 kubelet运行在node节点用来启动容器的工具 2、配置阿里云yum源
使用 YUM 方式安装 Kubernetes时推荐使用阿里的 YUM 源。 [rootk8s-master ~]# ls /etc/yum.repos.d/ [rootk8s-master ~]# cat /etc/yum.repos.d/kubernetes.repo 3、安装kubelet kubeadm kubectl
所有主机配置 [rootk8s-master ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0 [rootk8s-master ~]# systemctl enable kubelet [rootk8s-master ~]# kubectl version kubelet 刚安装完成后通过 systemctl start kubelet 方式是无法启动的需要加入节点或初始化为 master 后才可启动成功。 4、配置init-config.yaml Kubeadm 提供了很多配置项Kubeadm 配置在 Kubernetes 集群中是存储在ConfigMap 中的也可将这些配置写入配置文件方便管理复杂的配置项。Kubeadm 配内容是通过 kubeadm config 命令写入配置文件的。 在master节点安装master 定于为192.168.100.131通过如下指令创建默认的init-config.yaml文件 [rootk8s-master ~]# kubeadm config print init-defaults init-config.yaml init-config.yaml配置
[rootk8s-master ~]# cat init-config.yaml 5、安装master节点
1拉取所需镜像
[rootk8s-master ~]# kubeadm config images list --config init-config.yaml [rootk8s-master ~]# kubeadm config images pull --config init-config.yaml 2安装matser节点
[rootk8s-master ~]# kubeadm init --configinit-config.yaml //初始化安装K8S 3根据提示操作 kubectl 默认会在执行的用户家目录下面的.kube 目录下寻找config 文件。这里是将在初始化时[kubeconfig]步骤生成的admin.conf 拷贝到.kube/config [rootk8s-master ~]# mkdir -p $HOME/.kube [rootk8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [rootk8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config Kubeadm 通过初始化安装是不包括网络插件的也就是说初始化之后是不具备相关网络功能的比如 k8s-master 节点上查看节点信息都是“Not Ready”状态、Pod 的 CoreDNS无法提供服务等。 6、安装node节点
1根据master安装时的提示信息 [rootk8s-node01 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae [rootk8s-master ~]# kubectl get nodes [rootk8s-node02 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae Master操作
[rootk8s-master ~]# kubectl get nodes 前面已经提到在初始化 k8s-master 时并没有网络相关配置所以无法跟 node 节点通信因此状态都是“NotReady”。但是通过 kubeadm join 加入的 node 节点已经在k8s-master 上可以看到。 7、安装flannel
Master 节点NotReady 的原因就是因为没有使用任何的网络插件此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。
所有主机
master上传kube-flannel.yml所有主机上传flannel_v0.12.0-amd64.tarcni-plugins-linux-amd64-v0.8.6.tgz [rootk8s-master ~]# docker load flannel_v0.12.0-amd64.tar 上传插件
[rootk8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz
[rootk8s-master ~]# cp flannel /opt/cni/bin/ master上传kube-flannel.yml
master主机配置
[rootk8s-master ~]# kubectl apply -f kube-flannel.yml [rootk8s-master ~]# kubectl get nodes [rootk8s-master ~]# kubectl get pods -n kube-system 已经是ready状态 8、部署测试应用
1所有node主机导入测试镜像
[rootk8s-master ~]# docker pull nginx 2在Kubernetes集群中创建一个pod验证是否正常运行。
[rootk8s-master ~]# mkdir demo
[rootk8s-master ~]# cd demo
[rootk8s-master demo]# vim nginx-deployment.yaml 创建完 Deployment 的资源清单之后使用 create 执行资源清单来创建容器。通过 get pods 可以查看到 Pod 容器资源已经自动创建完成。
[rootk8s-master demo]# kubectl create -f nginx-deployment.yaml
[rootk8s-master demo]# kubectl get pods [rootk8s-master demo]# kubectl get pods -o wide 3创建Service资源清单 在创建的 nginx-service 资源清单中定义名称为 nginx-service 的 Service、标签选择器为 app: nginx、type 为 NodePort 指明外部流量可以访问内部容器。在 ports 中定义暴露的端口库号列表对外暴露访问的端口是 80容器内部的端口也是 80。
[rootk8s-master demo]# vim nginx-service.yaml [rootk8s-master1 demo]# kubectl create -f nginx-service.yaml
[rootk8s-master demo]# kubectl get svc .访问测试
[rootk8s-master demo]# curl 10.101.253.90:80 通过浏览器访问nginxhttp://192.168.100.131:31367 三、部署Prometheus监控平台
1、准备Prometheus相关YAML文件
在master节点/opt目录下新建pgmonitor目录 [rootk8s-master ~]# mkdir pgmonitor [rootk8s-master ~]# cd pgmonitor/ 将下载yaml包上传至/opt/pgmonitor目录并解压 [rootk8s-master ~]# unzip k8s-prometheus-grafana-master.zip 2、部署prometheus
1)部署守护进程 [rootk8s-master pgmonitor]# cd k8s-prometheus-grafana-master/ [rootk8s-master k8s-prometheus-grafana-master]# kubectl create -f node-exporter.yaml 2)部署其他yaml文件 进入/pgmonitor/k8s-prometheus-grafana-master/prometheus目录 [rootk8s-master k8s-prometheus-grafana-master]# cd prometheus 3)部署rbac [rootk8s-master prometheus]# kubectl create -f rbac-setup.yaml 4)部署configmap.yaml [rootk8s-master prometheus]# kubectl create -f configmap.yaml 5)部署prometheus.deploy.yml [rootk8s-master prometheus]# kubectl create -f prometheus.deploy.yml 6)部署prometheus.svc.yml [rootk8s-master prometheus]# kubectl create -f prometheus.svc.yml 7)查看prometheus状态 [rootk8s-master prometheus]# kubectl get pods -n kube-system 稍等一会再次查看 [rootk8s-master prometheus]# kubectl get pods -n kube-system 四、部署Grafana服务
1、部署Grafana相关yaml文件 进入/opt/pgmonitor/k8s-prometheus-grafana-master/grafana目录 [rootk8s-master prometheus]# cd ../grafana/ 1部署grafana-deploy.yaml [rootk8s-master grafana]# kubectl create -f grafana-deploy.yaml 2部署grafana-svc.yaml [rootk8s-master grafana]# kubectl create -f grafana-svc.yaml 3部署grafana-ing.yaml [rootk8s-master grafana]# kubectl create -f grafana-ing.yaml 4查看Grafana状态 [rootk8s-master grafana]# kubectl get pods -n 2、配置Grafana数据源
1查看grafana的端口
[rootk8s-master grafana]# kubectl get svc -n 五、grafana web操作
2通过浏览器访问
grafanahttp://[masterIP]:[grafana端口]
例如http://192.168.100.131:30503默认的用户名和密码admin/admin 3设置DataSource 设置显示数据的模版 输入315并移除光标等一会儿即可进入下一个页面 选择自己定义的数据源名称 至此已经利用PrometheusGranfana监控了Kubernetes平台。