1 DEVOPS 平台技术实践 - kaishen2018/project-tracking GitHub Wiki

DEVOPS 自动化部署运维平台

目录

  • Docker 基础
  • Grafana 基础
  • ELK 基础

Docker 基础

基本概念

  • 虚拟化技术
  • docker & k8s
  • 镜像 & 容器

环境准备

  • CentOS 7 安装 docker
# 参考: https://www.cnblogs.com/yufeng218/p/8370670.html
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.0.ce-3.el7.x86_64.rpm 
yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r 
yum install docker-ce-18.03.0.ce 
systemctl status docker 
systemctl start docker 

NOTE: 修改国内 docker register mirrors

echo '{"registry-mirrors": ["http://ef017c13.m.daocloud.io"]}' >> /etc/docker/daemon.json 

软件安装

Kong API Gateway

  • 1 准备网络
docker network create kong-net
  • 2 准备 postgres 数据库
docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               postgres:9.6
  • 3 初始化 DB
docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:latest kong migrations up
  • 4 启动 KONG ADMIN (注意对外的端口号,我改成了80)
docker run -d --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
     -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
     -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
     -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
     -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
     -p 80:8000 \
     -p 8443:8443 \
     -p 8001:8001 \
     -p 8444:8444 \
     kong:latest
  • 5 测试 KONG ADMIN
curl -i http://localhost:8001/
  • 6 启动 kong-dashboard 参考
# Start Kong Dashboard
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

# Start Kong Dashboard on a custom port
docker run --rm -p [port]:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

# Start Kong Dashboard with basic auth
docker run --rm -p 8080:8080 pgbi/kong-dashboard start \
  --kong-url http://kong:8001
  --basic-auth user1=password1 user2=password2

# See full list of start options
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --help

ELK 基础

基础概念

  • Filebeat
  • Logstash
  • ElasticSearch
  • Kibana

安装

  • 1 准备网络
docker network create elasticsearch-net
  • 2 切换 Docker 国内镜像
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef017c13.m.daocloud.io
  • 3 启动 一个 es 实例
docker run -d \
--network elasticsearch-net \
-p 9200:9200 \
-v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
--name elasticsearch elasticsearch:6.5.4
  • 4 启动 kibana 实例
docker run -d \
--network elasticsearch-net \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kibana \
-p 5601:5601 kibana:6.5.4

Grafana 基础

基础知识

安装

  • docker 安装 (加入现有的一个网络 elasticsearch-net,方便调试)
docker run -d --name grafana \
       --network "elasticsearch-net" \
       --volume "/opt/grafana/data:/var/lib/grafana" \
       -p 3000:3000 grafana/grafana:5.4.0

实践

帮助指令

  • 将正在运行的容器加入同一个网络,使各容器在内部可见,参考
    docker network connect elasticsearch-net phpmyadmin_sbux