回顾
使用elk模型步骤:
1、安装部署ES,用的6.8.6,用7版本的可能需要升级jre环境。用二进制方式安装。
2、安装部署kafka,2.2.0,超过2.2的,没有更高的kafka-manager,建议用2.2 以下的。让数据流变成异步的。
3、制作filebeat镜像,filebeat 是轻量版的logstash。流氏日志收集工具。落盘一行收走一行。
4、“sidecar”模式构建业务pod,filebeat容器先起,足够小,先于业务容器起来;还可以:共享网络名称空间,在entrypoint.sh中利用netstat判断,filebeat是否起来。
5、启动logstash,从kafka里取topic,根据不通的index pattern,打到了es里。
6、部署kibana。
kibana的使用要点:
1、时间选择器
2、环境选择器
3、项目选择器
4、关键字选择器
Spinnaker简介
它自己本身也是一套基于java,基于spring cloud 的微服务。
Deck: 完全独立的前端静态项目
Gate:API网关,用户界面和API调用者都要通过gate来进行通信,心脏
Fiat:认证服务
Clouddriver:云驱动,驱动底层云计算集群的引擎,大脑
Front50: 管理数据持久化的组建,redis缓存,后接对象存储,开源软件minio,比如OSS
Orca:编排任务的组件
Rosco:编排虚拟机的,比如KVM
Echo:信息通信的总线,发消息的
Igor:用来和jenkins用来通信的,依赖Echo组件
Halyard:安装部署spinnaker的工具
部署spinnaker的Armory发行版
安装部署minio
~]# docker pull minio/minio:latest
dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: minio
name: minio
namespace: armory
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 7
selector:
matchLabels:
name: minio
template:
metadata:
labels:
app: minio
name: minio
spec:
containers:
- name: minio
image: harbor.od.com/armory/minio:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9000
protocol: TCP
args:
- server
- /data
env:
- name: MINIO_ACCESS_KEY
value: admin
- name: MINIO_SECRET_KEY
value: admin123
readinessProbe:
failureThreshold: 3
httpGet:
path: /minio/health/ready
port: 9000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
volumeMounts:
- mountPath: /data
name: data
imagePullSecrets:
- name: harbor
volumes:
- nfs:
server: hdss7-200
path: /data/nfs-volume/minio
name: data
svc.yaml
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: armory
spec:
ports:
- port: 80
protocol: TCP
targetPort: 9000
selector:
app: minio
ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: minio
namespace: armory
spec:
rules:
- host: minio.od.com
http:
paths:
- path: /
backend:
serviceName: minio
servicePort: 80
安装部署redis
其他组件过来连redis,是通过svc来连的。
~]# docker pull redis:4.0.14
dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: redis
name: redis
namespace: armory
spec:
replicas: 1
revisionHistoryLimit: 7
selector:
matchLabels:
name: redis
template:
metadata:
labels:
app: redis
name: redis
spec:
containers:
- name: redis
image: harbor.od.com/armory/redis:v4.0.14
imagePullPolicy: IfNotPresent
ports:
- containerPort: 6379
protocol: TCP
imagePullSecrets:
- name: harbor
svc.yaml
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: armory
spec:
ports:
- port: 6379
protocol: TCP
targetPort: 6379
selector:
app: redis
部署clouddriverr(上)
~]# docker pull docker.io/armory/spinnaker-clouddriver-slim:release-1.8.x-14c9664
credentials
[default]
aws_access_key_id=admin
aws_secret_access_key=admin123
kubectl create secret generic credentials --from-file=./credentials -n armory
给clouddriver管理员权限,
kubectl config set-cluster myk8s --certificate-authority=./ca.pem --embed-certs=true --server=https://10.4.7.10:7443 --kubeconfig=config
kubectl config set-credentials cluster-admin --client-certificate=./admin.pem --client-key=./admin-key.pem --embed-certs=true --kubeconfig=config
kubectl config set-context myk8s-context --cluster=myk8s --user=cluster-admin --kubeconfig=config
kubectl config use-context myk8s-context --kubeconfig=config
kubectl create clusterrolebinding myk8s-admin --clusterrole=cluster-admin --user=cluster-admin
cluster-admin 是要对应集群管理员的名字,要不然还得做role binding,得多一个步骤,所以CN的名字教cluster-admin。
kubectl config view
# 可以远