cheap medications premarin 1.25mg tablets estrogen contents, cheap medications buy wellbutrin no rx needed, cheap online buy baclofen online, cheap online order flagyl er pay pal online without prescription, pharmacy cheapest where to buy buy doxycycline online, online cheap medications buy overnight delivery lasix fedex, buy cheap purchase diflucan, cheap online buy neurontin online overnight cod, cheap pharmacy fedex acyclovir overnight without a rx, order cheap what is norvasc, buying cheap buy arimidex free consultation,

存档

‘Docker & K8S’ 分类的存档

Docker镜像仓库Harbor

2018年8月13日 没有评论

Habor是由VMWare公司开源的容器镜像仓库。Habor是在Docker Registry上进行了相应的企业级扩展,这些企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等。

Harbor-01

Harbor-02

jdos

jdos

Harbor-03

下载 https://storage.googleapis.com/harbor-releases/release-1.4.0/harbor-online-installer-v1.4.0.tgz

设置 harbor.cfg 中 MySQL、PostgreSQL数据库信息。

创建File Sharing -> data

drwxr-xr-x    9 huihoo staff   288  4  3 16:56  data

Harbor-04

$ docker info | grep 'Logging Driver'
Logging Driver: json-file

harbor设置的是syslog

vim /etc/syslog.conf
*.* @127.0.0.1:514

$ ps -e | grep syslogd
重启
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

$ ./prepare
$ docker-compose up

Harbor-05

$ docker info
Logging Driver: json-file

Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog

将日志方式改为:json-file,修改docker-compose.yml

替换所有services部分的logging

version: '2.1'
x-logging:
  &default-logging
  options:
    max-size: '12m'
    max-file: '5'
  driver: json-file

services:
  registry:
    logging: *default-logging
  mysql:
    logging: *default-logging

日志问题解决,现在的问题是:

Harbor-06

harbor.cfg: hostname = localhost:8060

修改端口映射 docker-compose.yml

    ports:
      - 8060:80   <--- 修改端口映射
      - 443:443
      - 4443:4443
$ docker-compose down -v
$ sudo ./prepare
$ sudo docker-compose up
$ docker-compose ps

在249上安装,harbor.cfg mysql不改,hostname = localhost:8086

# netstat -pna | grep 443

tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      4472/haproxy

443被占,nginx无法启动。

把443:443改为4433:4433

继续有WARNING: no logs are available with the ‘syslog’ log driver问题,改为json-file

docker-compose up -d 后台运行

http://192.168.0.249:8086/  admin/Harbor12345

Harbor-07

Harbor-08


接入另一个IP的Docker私有仓库

Harbor-09


分类: Docker & K8S, Mesos & DC/OS 标签:

Zerotodocker

2018年8月4日 没有评论

此项目加速评估NetflixOSS,帮助熟悉Spring Cloud Netflix。

启动5个docker容器,分配5个vip地址。

第一次运行
$ docker run -d --name asgard -v `pwd`/Config.groovy.mine:/root/.asgard/Config.groovy netflixoss/asgard:1.5.1
$ docker run -d --name exhibitor netflixoss/exhibitor:1.5.2
$ docker run -d --name eureka -d netflixoss/eureka:1.3.1
$ docker run -d --name hello-netflix-oss --link eureka:eureka netflixoss/hello-netflix-oss:1.0.28
$ docker run -e "origin.zuul.client.DeploymentContextBasedVipAddresses=HELLO-NETFLIX-OSS" -d --name zuul --link eureka:eureka netflixoss/zuul:1.0.28

镜像在本地后的再次运行
$ docker run -it netflixoss/asgard:1.5.1
$ docker run -it netflixoss/exhibitor:1.5.2
$ docker run -it netflixoss/eureka:1.3.1
$ docker run -it netflixoss/hello-netflix-oss:1.0.28
$ docker run -it netflixoss/zuul:1.0.28

Zerotodocker

获得image的信息,如:

$ docker inspect 952ff95f7b15

"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.6",
"NetworkID": "11e33740b6f19160ee203a2654dd20a051a93f28879a7b6ef270d9f08bdba564",

如何从本地机直接访问容器地址。

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
11e33740b6f1        bridge              bridge              local
10388d67aaf7        docker_gwbridge     bridge              local
f04c155e245d        host                host                local
27wc5q8vyzi5        ingress             overlay             swarm
c884f99c18fa        none                null                local

使用Bridge的方式,Four ways to connect a docker container to a local network

Docker subnet: 192.168.65.0/24


分类: Cloud Computing, Docker & K8S 标签:

Vitess MySQL/MariaDB Cluster

2018年8月1日 没有评论

Vitess MySQL Cluster是基于Kubernetes的MySQL集群解决方案,支持 MariaDB,Youtube、京东在使用。

Image

https://vitess.io/

本地Docker安装测试

$ sudo docker run -ti vitess/base bash
vitess@80ea443db330:/vt/src/vitess.io/vitess$ make build

vitess@80ea443db330:/$ export VTROOT=/vt
vitess@80ea443db330:/$ export VTDATAROOT=/vt/vtdataroot
vitess@80ea443db330:/$ cd $VTROOT/src/vitess.io/vitess/examples/local
vitess@80ea443db330:/vt/src/vitess.io/vitess/examples/local$ ./zk-up.sh

$ ./vtctld-up.sh
$ ./lvtctl.sh help
$ ./vttablet-up.sh

Starting MySQL for tablet test-0000000100...
Starting MySQL for tablet test-0000000101...
Starting MySQL for tablet test-0000000102...
Starting MySQL for tablet test-0000000103...
Starting MySQL for tablet test-0000000104...

Starting vttablet for test-0000000100...
Access tablet test-0000000100 at http://f6357772e357:15100/debug/status
Starting vttablet for test-0000000101...
Access tablet test-0000000101 at http://f6357772e357:15101/debug/status
Starting vttablet for test-0000000102...
Access tablet test-0000000102 at http://f6357772e357:15102/debug/status
Starting vttablet for test-0000000103...
Access tablet test-0000000103 at http://f6357772e357:15103/debug/status
Starting vttablet for test-0000000104...
Access tablet test-0000000104 at http://f6357772e357:15104/debug/status

初始化数据库
$ ./lvtctl.sh InitShardMaster -force test_keyspace/0 test-100

测试数据库
$ ./lvtctl.sh ListAllTablets test

test-0000000100 test_keyspace 0 master f6357772e357:15100 f6357772e357:17100 []
test-0000000101 test_keyspace 0 replica f6357772e357:15101 f6357772e357:17101 []
test-0000000102 test_keyspace 0 replica f6357772e357:15102 f6357772e357:17102 []
test-0000000103 test_keyspace 0 rdonly f6357772e357:15103 f6357772e357:17103 []
test-0000000104 test_keyspace 0 rdonly f6357772e357:15104 f6357772e357:17104 []

运行了5个MySQL实例:一个Master、两个复制、两个只读

创建一个表
$ ./lvtctl.sh ApplySchema -sql "$(cat create_test_table.sql)" test_keyspace

Vitess-MySQL-Cluster


分类: Database & Storage, Docker & K8S 标签:

Spring Cloud Data Flow on DC/OS

2018年7月8日 没有评论

Spring Cloud Data Flow构建数据集成和实时数据处理流水线。

主要用于数据处理场景,如:导入/导出事件流和预测分析等。

它有多种实现部署方式:

https://cloud.spring.io/spring-cloud-dataflow/

我们主要关注 Spring Cloud Data Flow for Apache Mesos

spring-cloud-dataflow-arch

spring-cloud-dataflow-server-arch

https://cloud.spring.io/spring-cloud-dataflow-server-mesos/


微服务Microservices框架

2018年7月6日 没有评论

一说到微服务,我们马上会想到:Spring Cloud & Netflix OSS

Microservices

其实,还有一些微服务框架值得更多关注,如Go开发的Go kit、Istio和C++开发的Service Fabric和TSeer 。

https://github.com/go-kit/kit
https://github.com/istio/istio
https://github.com/Microsoft/service-fabric
https://github.com/Tencent/TSeer

TSeer是一套服务注册发现容错的解决方案,是对Tars名字服务功能的轻量化。在腾讯浏览器、应用宝、管家、手机书城、腾讯文学、广点通等众多业务中广泛采用,目前日均承载百亿级别的请求量。

pptseer

此外,ACE也可以作为一个不错的微服务框架使用,通过ACE Service Configurator可以动态地配置以下服务:短时服务、长时服务、内部服务、外部服务、有状态服务、无状态服务、分层式/模块化服务等等。

Microservices-3

Microservices-4

Microservices-5

Java是大多数公司研发的首选,其实,Go语言对构建微服务有天然优势,基于Go、Docker & K8S 和 OpenShift 能快速构建完整的互联网应用基础设施和交付平台。

将Istio分布式集群部署:Istio on Kubernetes on Mesos on AWS

istio-k8s-dcos

个人倾向,通过Go去更多替代Java,且从容器、微服务和持续交付快速入手。

有关微服务的一些信息:Microservices

Microservices-1

Microservices-2

另外,除GitLab外,Gogs也可作为更多Git仓库选择。


Consul服务发现和容器化DNS服务

2018年6月29日 没有评论

服务发现 – consul 的介绍、部署和使用

Consul架构

Image

Consul角色:

  • client: 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群;
  • server: 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯。

Consul使用场景:

  • Docker 实例的注册与配置共享
  • CentOS 实例的注册与配置共享
  • DC/OS 集群
  • SaaS 应用的配置共享
  • 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

资源:

初体验下:

$ docker pull consul
启动节点1(server)

docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node1 consul agent -server -bind=172.17.0.2  -bootstrap-expect=3 -node=node1

启动节点2、3(server)
docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node2 consul agent -server -bind=172.17.0.3  -join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node2

docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node3 consul agent -server -bind=172.17.0.4  -join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node3 -client=172.17.0.4

启动节点4(client)
docker run -d -e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' --name=node4 consul agent -bind=172.17.0.5 -retry-join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node4

查看集群
docker exec -t node1 consul members

consul

$ docker run -p 8500:8500 consul

2018/04/09 06:55:50 [INFO] agent: Started DNS server 0.0.0.0:8600 (tcp)

2018/04/09 06:55:50 [INFO] agent: Started DNS server 0.0.0.0:8600 (udp)

2018/04/09 06:55:50 [INFO] agent: Started HTTP server on [::]:8500 (tcp)

http://127.0.0.1:8500/ui/

consul-01

Consul通过8600端口提供DNS服务

Consul Forwarding DNS 支持 BIND, dnsmasq, Unbound, and iptables

Dnsmasq a lightweight, caching DNS proxy with integrated DHCP server.

Consul DNS 转发配置到 dnsmasq

/etc/dnsmasq.d/10-consul

# Enable forward lookup of the 'consul' domain:
server=/consul/127.0.0.1#8600

# Uncomment and modify as appropriate to enable reverse DNS lookups for
# common netblocks found in RFC 1918, 5735, and 6598:
#rev-server=0.0.0.0/8,127.0.0.1#8600
#rev-server=10.0.0.0/8,127.0.0.1#8600
#rev-server=100.64.0.0/10,127.0.0.1#8600
#rev-server=127.0.0.1/8,127.0.0.1#8600
#rev-server=169.254.0.0/16,127.0.0.1#8600
#rev-server=172.16.0.0/12,127.0.0.1#8600
#rev-server=192.168.0.0/16,127.0.0.1#8600
#rev-server=224.0.0.0/4,127.0.0.1#8600
#rev-server=240.0.0.0/4,127.0.0.1#8600

重启dnsmasq

使用dnsmasq镜像

$ docker pull andyshinn/dnsmasq

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq --address /api.test.com/127.0.0.1

$ ping api.test.com
PING api.test.com (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.050 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.060 ms

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq -S /consul/10.17.0.2

dnsmasq和consul是不同定位的产品,但可以工作在一起。

mesos-consul:Mesos to Consul bridge for service discovery  将Consul引入Mesos。