OpenShift — платформа PaaS с открытым исходным кодом от Red Hat. OpenShift 3 предоставляет целостный опыт запуска ваших приложений с использованием Docker и Kubernetes. В классическом стиле Red Hat вся работа выполняется в OpenShift Origin с открытым исходным кодом. Это также приводит к появлению следующего основного выпуска OpenShift Online и OpenShift Enterprise .
OpenShift 3, использующая Docker и Kubernetes для оркестровки контейнеров, позволяет очень просто выводить любые продукты, имеющие образ Docker, для запуска с минимальными усилиями. В этом блоге объясняется, как начать работу с Couchbase в OpenShift 3.
Начало работы с OpenShift 3
- Загрузите последнюю версию Vagrant box (1.1 на момент написания этой статьи) и Vagrantfile с: openshift.org/vm/ . Скопируйте их в тот же каталог. Vagrantfile настроен на 2 ГБ памяти и может быть обновлен, если вам нужно запустить больше контейнеров. OpenShift Master, Node, Docker Registry и другие компоненты работают внутри VM. Этот блог был написан с использованием Vagrant 1.7.4 и VirtualBox 5.0.10r104061.
- Добавьте шкатулку бродяги:
12345
vagrant box add --name openshift3 openshift-bootstrap-1.1.box
==> box: Box
file
was not detected as metadata. Adding it directly...
==> box: Adding box
'openshift3'
(v0)
for
provider:
box: Unpacking necessary files from:
file
:
///Users/arungupta/tools/openshiftv3/1
.1
/openshift-bootstrap-1
.1.box
==> box: Successfully added box
'openshift3'
(v0)
for
'virtualbox'
!
- Запустите виртуальную машину:
01020304050607080910111213141516171819202122232425262728293031
vagrant up
Bringing machine
'default'
up with
'virtualbox'
provider...
==> default: Setting the name of the VM: openshift3
==> default: Clearing any previously
set
network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 80 => 1080 (adapter 1)
default: 443 => 1443 (adapter 1)
default: 5000 => 5000 (adapter 1)
default: 8080 => 8080 (adapter 1)
default: 8443 => 8443 (adapter 1)
default: 22 => 2222 (adapter 1)
==> default: Running
'pre-boot'
VM customizations...
==> default: Booting VM...
==> default: Waiting
for
machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking
for
guest additions
in
VM...
default: The guest additions on this VM
do
not match the installed version of
default: VirtualBox! In most cases this is fine, but
in
rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please
make
sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.3.20
default: VirtualBox Version: 5.0
Загрузите и настройте клиент OpenShift 3
- Загрузите инструменты для 64-битных клиентов Mac (
gem install rhc
только для v2) с openshift.org/vm/ и извлеките их в каталог. Список выглядит так:0102030405060708091011tar
xzvf ~
/Downloads/openshift-origin-v1
.1-ac7a99a-darwin-amd64.
tar
.gz
x ./
x .
/oadm
x .
/kube-scheduler
x .
/kubelet
x .
/kube-apiserver
x .
/openshift
x .
/kube-controller-manager
x .
/kube-proxy
x .
/oc
x .
/kubectl
- Проверьте версию клиента:
123
.
/oc
version
oc v1.1
kubernetes v1.1.0-origin-1107-g4c8e6f4
- Удалите
~/.kube/config
или переименуйте в другое. - Войдите в OpenShift:
01020304050607080910111213141516171819
.
/oc
login
Server [https:
//localhost
:8443]:
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y
/n
): y
Authentication required
for
https:
//localhost
:8443 (openshift)
Username: admin
Password:
Login successful.
You have access to the following projects and can switch between them with
'oc project <projectname>'
:
* default (current)
* openshift
* turbo
Using project
"default"
.
Welcome! See
'oc help'
to get started.
Создать приложение Couchbase в OpenShift 3
- Создайте новый экземпляр Couchbase:
0102030405060708091011
.
/oc
new-app arungupta
/couchbase
--> Found Docker image 9131c5a (2 days old) from Docker Hub
for
"arungupta/couchbase"
* An image stream will be created as
"couchbase:latest"
that will track this image
* This image will be deployed
in
deployment config
"couchbase"
* Ports 11207
/tcp
, 11210
/tcp
, 11211
/tcp
, 18091
/tcp
, 18092
/tcp
, 8091
/tcp
, 8092
/tcp
, 8093
/tcp
will be load balanced by service
"couchbase"
--> Creating resources with label app=couchbase ...
ImageStream
"couchbase"
created
DeploymentConfig
"couchbase"
created
Service
"couchbase"
created
--> Success
Run
'oc status'
to view your app.
arungupta/couchbase
используется, поскольку он использует CESTbase REST API для предварительной настройки сервера Couchbase с помощью:- Квота памяти и индекса
- Служба запросов, данных и индексов
- Имя пользователя и пароль
- Установите ковш для
travel-sample
Этот примерный контейнер будет использоваться позже для запроса данных.
- Проверьте статус развертывания:
010203040506070809101112131415161718192021222324
.
/oc
status
In project default on server https:
//localhost
:8443
svc
/couchbase
- 172.30.84.134 ports 8091, 8092, 8093, 11207, 11210, 11211, 18091, 18092
dc
/couchbase
deploys imagestreamtag
/couchbase
:latest
#1 deployed about a minute ago - 1 pod
svc
/docker-registry
- 172.30.236.154:5000
dc
/docker-registry
deploys docker.io
/openshift/origin-docker-registry
:v1.1
#1 deployed 4 weeks ago - 1 pod
svc
/kubernetes
- 172.30.0.1 ports 443, 53, 53
svc
/router
- 172.30.233.69:80
dc
/router
deploys docker.io
/openshift/origin-haproxy-router
:v1.1
#1 deployed 4 weeks ago - 1 pod
Warnings:
* container
"registry"
in
pod
/docker-registry-1-imxqp
has restarted 5
times
* container
"openshift-registry-proxy-1"
in
pod
/openshift-registry-proxy
has restarted 3
times
* container
"router"
in
pod
/router-1-5grim
has restarted 5
times
To see
more
, use
'oc describe <resource>/<name>'
.
You can use
'oc get all'
to see a list of other objects.
- Найдите список стручков:
123456
client > .
/oc
get po
NAME READY STATUS RESTARTS AGE
couchbase-1-5zhju 1
/1
Running 0 1d
docker-registry-1-imxqp 1
/1
Running 5 32d
openshift-registry-proxy 1
/1
Running 3 32d
router-1-5grim 1
/1
Running 5 32d
- Получить более подробную информацию о модуле Couchbase:
010203040506070809101112131415161718192021222324252627282930313233343536
.
/oc
describe po couchbase-1-5zhju
Name: couchbase-1-5zhju
Namespace: default
Image(s): arungupta
/couchbase
@sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f
Node: localhost.localdomain
/10
.0.2.15
Start Time: Sat, 19 Dec 2015 08:19:31 -0800
Labels: app=couchbase,deployment=couchbase-1,deploymentconfig=couchbase
Status: Running
Reason:
Message:
IP: 172.17.0.7
Replication Controllers: couchbase-1 (1
/1
replicas created)
Containers:
couchbase:
Container ID: docker:
//bd51f655c2a54f92f4634b84f455ca91642a88b925be39126f07df43ce883a33
Image: arungupta
/couchbase
@sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f
Image ID: docker:
//c9d204bb75427500ef94263f8f53e8b78f2e56efd37543e620aebb1bc1bd7de1
QoS Tier:
cpu: BestEffort
memory: BestEffort
State: Running
Started: Sat, 19 Dec 2015 08:20:21 -0800
Ready: True
Restart Count: 0
Environment Variables:
Conditions:
Type Status
Ready True
Volumes:
couchbase-volume-1:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
default-token-cycb6:
Type: Secret (a secret that should populate this volume)
SecretName: default-token-cycb6
No events.
Query Couchbase Sample Bucket
- Войдите в окно Vagrant:
123
vagrant
ssh
Last login: Wed Nov 18 18:04:32 2015 from 10.0.2.2
[vagrant@localhost ~]$
- Найдите список всех запущенных контейнеров:
01020304050607080910111213141516
[vagrant@localhost ~]$ docker
ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd51f655c2a5 arungupta
/couchbase
@sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f
"/entrypoint.sh /opt/"
7 minutes ago Up 7 minutes k8s_couchbase.f96da262_couchbase-1-5zhju_default_48e953db-a66c-11e5-8a75-080027c5bfa9_31dbcfec
8e5ef3e54d4e openshift
/origin-pod
:v1.1
"/pod"
8 minutes ago Up 8 minutes k8s_POD.d7dfee57_couchbase-1-5zhju_default_48e953db-a66c-11e5-8a75-080027c5bfa9_b1bcd72d
0f7807f389d9 openshift
/mysql-55-centos7
:latest
"container-entrypoint"
15 minutes ago Up 15 minutes k8s_ruby-helloworld-database.448eeefe_database-1-w51ix_turbo_91adac2f-8d66-11e5-bf15-080027c5bfa9_74ecdc59
077a078e00a3 172.30.236.154:5000
/turbo/origin-ruby-sample
@sha256:c4ed12ec9817fca1fb41a5eb0c66f2edccf2e7375128fd6d64f7180207262193
"container-entrypoint"
16 minutes ago Up 16 minutes k8s_ruby-helloworld.88353f9f_frontend-2-1lm99_turbo_42a6dd40-8d67-11e5-bf15-080027c5bfa9_d5110e41
e2105f2f4ab6 openshift
/origin-haproxy-router
:v1.1
"/usr/bin/openshift-r"
16 minutes ago Up 16 minutes k8s_router.c3a638e8_router-1-5grim_default_cac8c2d2-8d63-11e5-b835-080027c5bfa9_9d49a633
b98052109d08 172.30.236.154:5000
/turbo/origin-ruby-sample
@sha256:c4ed12ec9817fca1fb41a5eb0c66f2edccf2e7375128fd6d64f7180207262193
"container-entrypoint"
16 minutes ago Up 16 minutes k8s_ruby-helloworld.88353f9f_frontend-2-hdz43_turbo_46657993-8d67-11e5-bf15-080027c5bfa9_f6394539
646dcce91f59 openshift
/origin-docker-registry
:v1.1
"/bin/sh -c 'REGISTRY"
16 minutes ago Up 16 minutes k8s_registry.35eb136e_docker-registry-1-imxqp_default_cb3dde6e-8d63-11e5-b835-080027c5bfa9_71586c07
d02c8c07f690 openshift
/origin-registry-proxy
"sh -cx '/bin/tcppm -"
16 minutes ago Up 16 minutes k8s_openshift-registry-proxy-1.a0457375_openshift-registry-proxy_default_767fcb12-8d64-11e5-bf15-080027c5bfa9_4c413a10
23267082944f openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes k8s_POD.d982fd5f_database-1-w51ix_turbo_91adac2f-8d66-11e5-bf15-080027c5bfa9_8fc2969f
bd7f82a88cb1 openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes k8s_POD.e127fd63_frontend-2-1lm99_turbo_42a6dd40-8d67-11e5-bf15-080027c5bfa9_3f73ddf8
d2ca01d75a0c openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes k8s_POD.4d0ddc3f_router-1-5grim_default_cac8c2d2-8d63-11e5-b835-080027c5bfa9_036343da
5e25f5ba5c4c openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes k8s_POD.e127fd63_frontend-2-hdz43_turbo_46657993-8d67-11e5-bf15-080027c5bfa9_122e502e
7c4b2b9e6c39 openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes k8s_POD.cc3ffd58_docker-registry-1-imxqp_default_cb3dde6e-8d63-11e5-b835-080027c5bfa9_0ae24ed7
85c4cf8d0808 openshift
/origin-pod
:v1.1
"/pod"
17 minutes ago Up 16 minutes 0.0.0.0:5000->5000
/tcp
k8s_POD.c686fded_openshift-registry-proxy_default_767fcb12-8d64-11e5-bf15-080027c5bfa9_04225f94
Поиск контейнера Couchbase:
12345[vagrant@localhost ~]$ docker
ps
|
grep
couchbase
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd51f655c2a5 arungupta
/couchbase
@sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f
"/entrypoint.sh /opt/"
7 minutes ago Up 7 minutes k8s_couchbase.f96da262_couchbase-1-5zhju_default_48e953db-a66c-11e5-8a75-080027c5bfa9_31dbcfec
8e5ef3e54d4e openshift
/origin-pod
:v1.1
"/pod"
8 minutes ago Up 8 minutes k8s_POD.d7dfee57_couchbase-1-5zhju_default_48e953db-a66c-11e5-8a75-080027c5bfa9_b1bcd72d
0f7807f389d9 openshift
/mysql-55-centos7
:latest
"container-entrypoint"
15 minutes ago Up 15 minutes
Получить идентификатор для нашего контейнера:
12docker
ps
|
grep
arungupta
/couchbase
|
awk
'{ print $1}'
bd51f655c2a5
- Получите IP-адрес модуля, на котором работает сервер Couchbase:
12
[vagrant@localhost ~]$ docker inspect --
format
'{{ index .Config.Env 6 }}'
`docker
ps
|
grep
arungupta
/couchbase
|
awk
'{ print $1}'
`
COUCHBASE_SERVICE_HOST=172.30.84.134
- Используйте IP-адрес, показанный выше, чтобы запустить CLI Couchbase Query:
01020304050607080910111213141516171819202122232425
[vagrant@localhost ~]$ docker run -it arungupta
/couchbase
/opt/couchbase/bin/cbq
-engine=http:
//172
.30.84.134:8093
Unable to
find
image
'arungupta/couchbase:latest'
locally
Trying to pull repository docker.io
/arungupta/couchbase
... latest: Pulling from arungupta
/couchbase
62baed0d0de5: Already exists
39387babd60f: Already exists
6a2bc8404be0: Already exists
bad926a6fb50: Already exists
1a86c4c907e0: Already exists
32132a7c82e9: Already exists
646c3d5ebb71: Already exists
864cbabd77ad: Already exists
8c327c6d4e43: Already exists
8592c697ab61: Already exists
7734f4a832d4: Already exists
35edb38ebc17: Already exists
99f3eb6fb46f: Already exists
91e5fad693c2: Already exists
0cb81f5cc79b: Already exists
ec58df60a109: Already exists
c9d204bb7542: Already exists
Digest: sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f
Status: Downloaded newer image
for
docker.io
/arungupta/couchbase
:latest
Couchbase query shell connected to http:
//172
.30.84.134:8093/ . Type Ctrl-D to
exit
.
cbq>;
- Запросите образец корзины:
010203040506070809101112131415161718192021222324252627
cbq>
select
* from `travel-sample` limit 1;
{
"requestID"
:
"a7bd414a-c571-4b22-8c81-30512b87730d"
,
"signature"
: {
"*"
:
"*"
},
"results"
: [
{
"travel-sample"
: {
"callsign"
:
"MILE-AIR"
,
"country"
:
"United States"
,
"iata"
:
"Q5"
,
"icao"
:
"MLA"
,
"id"
: 10,
"name"
:
"40-Mile Air"
,
"type"
:
"airline"
}
}
],
"status"
:
"success"
,
"metrics"
: {
"elapsedTime"
:
"123.799956ms"
,
"executionTime"
:
"116.882044ms"
,
"resultCount"
: 1,
"resultSize"
: 300
}
}
Наслаждайтесь!
Этот блог демонстрирует основы работы с Couchbase в OpenShift 3. Будущие блоги покажут:
- Как развернуть приложение в OpenShift и использовать эту Couchbase
- Как сделать это приложение доступным вне OpenShift
- Как масштабировать Couchbase в OpenShift
- Возможно, некоторые другие интересные вещи, которые приходят вместе
Узнайте больше о Couchbase 4.1
- Что нового в Couchbase Server 4.1
- Загрузить Couchbase Server 4.1
- Документация Couchbase Server
- Поговорите с нами на форумах Couchbase
- Следуйте @couchbasedev или @couchbase
Ссылка: | Couchbase на OpenShift 3 от нашего партнера по JCG Аруна Гупта из Miles to go 2.0… блог. |