Kubernetes rancher、prometheus、ELK的安装

目录

一、rancher的安装

有关rancher的安装其实官方网站给的步骤已经很详细了,可以直接按照步骤安装即可。

1. 添加 Helm Chart 仓库

执行 helm repo add 命令,以添加包含安装 Rancher 的 Chart 的 Helm Chart 仓库。

官方推荐的是 Stable:建议用于生产环境

sh 复制代码
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable

2. 为 Rancher 创建命名空间

sh 复制代码
kubectl create namespace cattle-system

3. 选择 SSL 配置

默认是使用下面方式,当然你自己已有证书的情况还是配置为已有证书。

Rancher 生成的 TLS 证书:要求你在集群中安装 cert-manager。Rancher 使用 cert-manager 签发并维护证书。Rancher 会生成自己的 CA 证书,并使用该 CA 签署证书。然后 cert-manager负责管理该证书。

配置 Helm Chart 选项 是否需要 cert-manager
Rancher 生成的证书(默认) ingress.tls.source=rancher
Let's Encrypt ingress.tls.source=letsEncrypt
你已有的证书 ingress.tls.source=secret

4. 安装 cert-manager

使用你使用自己的证书文件跳过这步

sh 复制代码
#如果你手动安装了CRD,而不是在 Helm 安装命令中添加了 `--set installCRDs=true` 选项,你应该在升级 Helm Chart 之前升级 CRD 资源。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml

#添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io

#更新本地 Helm Chart 仓库缓存
helm repo update

#安装 cert-manager Helm Chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace

这一步如果出现证书错误的提示话,可以用别的机器可添加的环境进行添加,然后下载下来进行离线安装

sh 复制代码
helm repo add jetstack https://charts.jetstack.io
helm fetch rancher jetstack/cert-manager

helm install rancher cert-manager-v1.13.2.tgz \
--namespace cattle-system \
--set hostname=rancher.my.org \
--set bootstrapPassword=admin

如果没有域名的话,创建一个nodeport,外部可以访问。

sh 复制代码
apiVersion: v1
kind: Service
metadata:
 name: zxhy-rancher
 namespace: cattle-system
spec:
 type: NodePort         # 配置为NodePort,外部可以访问
 ports:
 - name: http
   port: 80
   protocol: TCP
   targetPort: 80
 - name: https-internal
   port: 443
   protocol: TCP
   targetPort: 444
    nodePort: 31500 #容器暴露的端口,与Dockerfile暴露端口保持一致
 selector:
  app: rancher

ip:31500 就可以访问到rancher了。

二、prometheus安装

sh 复制代码
git clone https://github.com/coreos/kube-prometheus.git
cd ./kube-prometheus/manifests
#可以修改grafana-service.yaml、alertmanager-service.yaml、prometheus-service.yaml
#把他们改成nodeport的方式进行服务暴露,端口自行设置

#开始安装
kubectl apply --server-side -f manifests/setup
kubectl wait --for condition=Established --all CustomResourceDefinition --namespace=monitoring
kubectl apply -f manifests/

容器默认的镜像仓库从 k8s.gcr.io 迁移到了 registry.k8s.io

目前两个镜像仓库都是可用的,未来会逐渐迁移到后者。国内用户可以尝试镜像的同步地址 k8s.m.daocloud.io (旧地址 k8s-gcr.m.daocloud.io)。使用 kubeadm 安装的用户可以使用 kubeadm init --image-repository=k8s.m.daocloud.io 创建新集群。

三、EFK安装

3.1安装elasticsearch

sh 复制代码
kubectl create namespace efk
helm install els --namespace=efk bitnami/elasticsearch

3.2安装filebeat

sh 复制代码
#  之前使用的是fluentd-elasticsearch,也写个安装方式
#helm install flu --namespace=efk stable/fluentd-elasticsearch  --set elasticsearch.host=els-#elasticsearch.efk.svc.cluster.local

#下载yaml文件
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.10/deploy/kubernetes/filebeat-kubernetes.yaml

#修改下面的默认参数
- name: ELASTICSEARCH_HOST
  value: els-elasticsearch.efk.svc.cluster.local
- name: ELASTICSEARCH_PORT
  value: "9200"
- name: ELASTICSEARCH_USERNAME
  value: elastic
- name: ELASTICSEARCH_PASSWORD
  value: changeme
#启动
kubectl create -f filebeat-kubernetes.yaml

3.3安装kibana

sh 复制代码
helm install kibana --namespace=efk bitnami/kibana \
  --set elasticsearch.hosts[0]=els-elasticsearch.efk.svc.cluster.local \
  --set elasticsearch.port=9200 \

最后附上国内的镜像替换站点

国内镜像替换

k8s.gcr.io --> lank8s.cn

gcr.io --> gcr.lank8s.cn

相关推荐
虚无境6 天前
如何编写一个SpringBoot项目告警推送的Starter
java·prometheus·webhook
java_cj7 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
qq_452396237 天前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
睡不醒男孩0308237 天前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
qq_452396237 天前
第十四篇:《K8s 网络模型与 CNI 插件(Calico、Flannel、Cilium)》
网络·kubernetes·php
Hadoop_Liang7 天前
Kubernetes 应用 HTTPS 安全访问配置实践
https·kubernetes
java_cj7 天前
从0到1启动kube-apiserver:深入源码解析API Server启动全流程
docker·容器·kubernetes
Hadoop_Liang7 天前
使用Kubernetes Gateway API实现域名访问应用
容器·kubernetes·gateway
java_cj7 天前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
万能的知了8 天前
K8s到底需不需要GPU节点?集群资源分配的底层逻辑
云原生·容器·kubernetes