Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

AI人工智能学习大礼包

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

基于Docker和Kubernetes的企业级DevOps实践训练营 PDF 下载


分享到:
时间:2021-08-28 08:59来源:http://www.java1234.com 作者:转载  侵权举报
基于Docker和Kubernetes的企业级DevOps实践训练营 PDF 下载
失效链接处理
基于Docker和Kubernetes的企业级DevOps实践训练营 PDF 下载


 
本站整理下载:
提取码:3wjq 
 
 
相关截图:
 
主要内容:

部署分析
1. es生产环境是部署es集群,通常会使用statefulset进行部署,此例由于演示环境资源问题,部署为
单点
2. 数据存储挂载主机路径
3. es默认使用elasticsearch用户启动进程,es的数据目录是通过宿主机的路径挂载,因此目录权限
被主机的目录权限覆盖,因此可以利用init container容器在es进程启动之前把目录的权限修改
掉,注意init container要用特权模式启动。
部署并验证
efk/elasticsearch.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
 labels:
  addonmanager.kubernetes.io/mode: Reconcile
  k8s-app: elasticsearch-logging
  version: v7.4.2
 name: elasticsearch-logging
 namespace: logging
spec:
 replicas: 1
 revisionHistoryLimit: 10
 selector:
  matchLabels:
   k8s-app: elasticsearch-logging
   version: v7.4.2
 serviceName: elasticsearch-logging
 template:
  metadata:
   labels:
    k8s-app: elasticsearch-logging
    version: v7.4.2
  spec:
   nodeSelector:
    log: "true" ## 指定部署在哪个节点。需根据环境来修改
   containers:
   - env:
    - name: NAMESPACE
     valueFrom:
      fieldRef:
       apiVersion: v1
       fieldPath: metadata.namespace
    - name: cluster.initial_master_nodes
     value: elasticsearch-logging-0
     - name: ES_JAVA_OPTS
     value: "-Xms512m -Xmx512m"
    image: 172.21.32.13:5000/elasticsearch/elasticsearch:7.4.2
    name: elasticsearch-logging
    ports:
    - containerPort: 9200
     name: db
     protocol: TCP
    - containerPort: 9300
     name: transport
     protocol: TCP
    volumeMounts:
    - mountPath: /usr/share/elasticsearch/data
     name: elasticsearch-logging
   dnsConfig:
    options:
    - name: single-request-reopen
   initContainers:
   - command:
    - /sbin/sysctl
    - -w
    - vm.max_map_count=262144
    image: alpine:3.6
    imagePullPolicy: IfNotPresent
    name: elasticsearch-logging-init
    resources: {}
    securityContext:
     privileged: true
   - name: fix-permissions
    image: alpine:3.6
    command: ["sh", "-c", "chown -R 1000:1000
/usr/share/elasticsearch/data"]
    securityContext:
     privileged: true
    volumeMounts:
    - name: elasticsearch-logging
     mountPath: /usr/share/elasticsearch/data
   volumes:
   - name: elasticsearch-logging
    hostPath:
     path: /esdata
---
apiVersion: v1
kind: Service
metadata:
 labels:
  k8s-app: elasticsearch-logging
 name: elasticsearch
 namespace: logging
spec:
 ports:
 - port: 9200
  protocol: TCP
  targetPort: db
 selector:
  k8s-app: elasticsearch-logging
 type: ClusterIP
部署kibana
部署分析
2. kibana需要暴漏web页面给前端使用,因此使用ingress配置域名来实现对kibana的访问
3. kibana为无状态应用,直接使用Deployment来启动
4. kibana需要访问es,直接利用k8s服务发现访问此地址即可,http://elasticsearch:9200
部署并验证
efk/kibana.yaml
$ kubectl create namespace logging
## 给slave1节点打上label,将es服务调度到slave1节点
$ kubectl label node k8s-slave1 log=true
## 部署服务,可以先去部署es的节点把镜像下载到本地
$ kubectl create -f elasticsearch.yaml
statefulset.apps/elasticsearch-logging created 
service/elasticsearch created
## 等待片刻,查看一下es的pod部署到了k8s-slave1节点,状态变为running
$ kubectl -n logging get po -o wide 
NAME            READY  STATUS   RESTARTS  AGE  IP       NODE
  
elasticsearch-logging-0  1/1   Running  0      69m  10.244.1.104  k8s-
slave1 
# 然后通过curl命令访问一下服务,验证es是否部署成功
$ kubectl -n logging get svc 
NAME       TYPE     CLUSTER-IP    EXTERNAL-IP  PORT(S)   AGE 
elasticsearch  ClusterIP  10.109.174.58  <none>     9200/TCP  71m 
$ curl 10.109.174.58:9200 
 "name" : "elasticsearch-logging-0", 
 "cluster_name" : "docker-cluster", 
 "cluster_uuid" : "uic8xOyNSlGwvoY9DIBT1g", 
 "version" : { 
"number" : "7.4.2", 
"build_flavor" : "default", 
"build_type" : "docker", 
"build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96", 
"build_date" : "2019-10-28T20:40:44.881551Z", 
"build_snapshot" : false, 
"lucene_version" : "8.2.0", 
"minimum_wire_compatibility_version" : "6.8.0", 
"minimum_index_compatibility_version" : "6.0.0-beta1" 
 }, 
 "tagline" : "You Know, for Search" 


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐