Я использую «oc cluster up» для запуска среды Openshift Origin. Однако я вижу, что после закрытия кластера мои проекты не сохраняются при перезапуске. Есть ли способ сделать их постоянными? Спасибо
Как сделать кластер oc постоянным?
Ответы (5)
Есть несколько способов сделать это. oc cluster up не имеет основного варианта использования сохраняющихся ресурсов.
Есть несколько способов сделать это:
- Используйте захват etcd, как описано в кластере oc вверх README
- Существует инструмент-оболочка, с помощью которого это легко сделать.
Теперь в команде cluster up --help
есть пример, он обязательно будет обновляться, поэтому сначала проверьте его.
oc cluster up --help
...
Examples:
# Start OpenShift on a new docker machine named 'openshift'
oc cluster up --create-machine
# Start OpenShift using a specific public host name
oc cluster up --public-hostname=my.address.example.com
# Start OpenShift and preserve data and config between restarts
oc cluster up --host-data-dir=/mydata --use-existing-config
Так что конкретно в v1.3.2
используйте --host-data-dir
и --use-existing-config
Предполагая, что вы используете докер-машину с виртуальной машиной, такой как виртуальная коробка, самый простой способ, который я нашел, — это сделать снимок виртуальной машины, ПОКА виртуальная машина и кластер openshift запущены и работают. Этот моментальный снимок создает резервную копию памяти в дополнение к диску, поэтому вы можете позже восстановить весь кластер, восстановив моментальный снимок vm, а затем запустив docker-machine start ...
Кстати, в последнем образе ОС openshift/origin:v3.6.0-rc.0 и oc cli, --host-data-dir=/mydata
, как было предложено в другом ответе, у меня не работает.
Я использую:
VirtualBox 5.1.26 Kubernetes v1.5.2+43a9be4
openshift v1.5.0+031cbe4
У меня не сработало использование --host-data-dir (и других):
oc cluster up --logging=true --metrics=true --docker-machine=openshift --use-existing-config=true --host-data-dir=/vm/data --host-config-dir=/vm/config --host-pv-dir=/vm/pv --host-volumes-dir=/vm/volumes
С выходом:
-- Checking OpenShift client ... OK
-- Checking Docker client ...
Starting Docker machine 'openshift'
Started Docker machine 'openshift'
-- Checking Docker version ...
WARNING: Cannot verify Docker version
-- Checking for existing OpenShift container ... OK
-- Checking for openshift/origin:v1.5.0 image ... OK
-- Checking Docker daemon configuration ... OK
-- Checking for available ports ... OK
-- Checking type of volume mount ...
Using Docker shared volumes for OpenShift volumes
-- Creating host directories ... OK
-- Finding server IP ...
Using docker-machine IP 192.168.99.100 as the host IP
Using 192.168.99.100 as the server IP
-- Starting OpenShift container ...
Starting OpenShift using container 'origin'
FAIL
Error: could not start OpenShift container "origin"
Details:
Last 10 lines of "origin" container log:
github.com/openshift/origin/vendor/github.com/coreos/pkg/capnslog.(*PackageLogger).Panicf(0xc4202a1600, 0x42b94c0, 0x1f, 0xc4214d9f08, 0x2, 0x2)
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/vendor/github.com/coreos/pkg/capnslog/pkg_logger.go:75 +0x16a
github.com/openshift/origin/vendor/github.com/coreos/etcd/mvcc/backend.newBackend(0xc4209f84c0, 0x33, 0x5f5e100, 0x2710, 0xc4214d9fa8)
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/vendor/github.com/coreos/etcd/mvcc/backend/backend.go:106 +0x341
github.com/openshift/origin/vendor/github.com/coreos/etcd/mvcc/backend.NewDefaultBackend(0xc4209f84c0, 0x33, 0x461e51, 0xc421471200)
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/vendor/github.com/coreos/etcd/mvcc/backend/backend.go:100 +0x4d
github.com/openshift/origin/vendor/github.com/coreos/etcd/etcdserver.NewServer.func1(0xc4204bf640, 0xc4209f84c0, 0x33, 0xc421079a40)
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/vendor/github.com/coreos/etcd/etcdserver/server.go:272 +0x39
created by github.com/openshift/origin/vendor/github.com/coreos/etcd/etcdserver.NewServer
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/vendor/github.com/coreos/etcd/etcdserver/server.go:274 +0x345
Openshift пишет в каталоги /vm/... (также определенные в VirtualBox), но успешно не запускается. См. [https://github.com/openshift/origin/issues/12602][1]
У меня тоже сработало, используя снимки виртуальных ящиков и восстанавливая их.
Чтобы сделать его постоянным после каждого выключения, вам нужно указать параметр base-dir
.
$ mkdir ~/openshift-config
$ oc cluster up --base-dir=~/openshift-config
Из справки
$ oc cluster up --help
...
Options:
--base-dir='': Directory on Docker host for cluster up configuration
--enable=[*]: A list of components to enable. '*' enables all on-by-default components, 'foo' enables the component named 'foo', '-foo' disables the component named 'foo'.
--forward-ports=false: Use Docker port-forwarding to communicate with origin container. Requires 'socat' locally.
--http-proxy='': HTTP proxy to use for master and builds
--https-proxy='': HTTPS proxy to use for master and builds
--image='openshift/origin-${component}:${version}': Specify the images to use for OpenShift
--no-proxy=[]: List of hosts or subnets for which a proxy should not be used
--public-hostname='': Public hostname for OpenShift cluster
--routing-suffix='': Default suffix for server routes
--server-loglevel=0: Log level for OpenShift server
--skip-registry-check=false: Skip Docker daemon registry check
--write-config=false: Write the configuration files into host config dir
Но вы не должны его использовать, потому что в версии 4.0.0 "кластеризация" удалена. Подробнее здесь: https://github.com/openshift/origin/pull/21399