В openshift 4.x у вас есть API для project
который кажется полностью похожим на namespace
в том смысле, что когда вы создаете проект, создается пространство имен и наоборот. Я знаю namespace
- стандартный объект в кубернетах, а проект специфичен для Openshift. Так что же project
приносит?
# list projects
oc get projects
NAME DISPLAY NAME STATUS
default Active
kube-node-lease Active
kube-public Active
kube-system Active
local-storage Active
openshift Active
openshift-apiserver Active
# list namespaces
$ oc get ns
NAME STATUS AGE
default Active 17d
kube-node-lease Active 17d
kube-public Active 17d
kube-system Active 17d
local-storage Active 16d
openshift Active 17d
openshift-apiserver Active 17d
openshift-apiserver-operator Active 17d
Список тот же, за исключением разных столбцов
oc get project foo
Error from server (NotFound): namespaces "foo" not found
oc get ns foo
Error from server (NotFound): namespaces "foo" not found
15:30 $ oc new-project foo
Now using project "foo" on server "https://api.goo.tadadidou.bo:6443".
...
$ oc get project foo
NAME DISPLAY NAME STATUS
foo Active
$ oc get ns foo
NAME STATUS AGE
foo Active 70s
Даже вывод yaml похож, за исключением значения поля Kind:
что либо Project
или Namespace
.
По сути, проект аналогичен пространству имен, но OpenShift предоставляет дополнительные административные средства управления проектами.
Если вы развертываете программное обеспечение на OpenShift, вы в основном будете использовать проект точно так же, как пространство имен Kubernetes, за исключением того, что обычному пользователю может быть запрещено создавать свои собственные проекты, для чего требуется администратор кластера. (Похоже, что ваш кластер позволяет вам создавать свои собственные проекты, или вы используете персональный кластер, такой как CodeReady Containers или его предшественник Minishift.)
Из документы:
В OpenShift проекты - это единица изоляции и сотрудничества. В проекте есть один или несколько участников, квота на ресурсы, которые проект может потреблять, и средства управления безопасностью ресурсов в проекте. В рамках проекта участники могут иметь разные роли - администраторы проекта могут устанавливать членство, редакторы могут создавать ресурсы и управлять ими, а зрители могут видеть, но не иметь доступа к работающим контейнерам. В обычном кластерном проекте администраторы не могут изменять свои квоты - это разрешено администраторам кластера.
При включении или просмотре проектов будут возвращены только те проекты, в которых пользователь выполняет роль читателя.
Проект OpenShift - это альтернативное представление пространства имен Kubernetes. Проекты доступны для редактирования конечным пользователям, а пространства имен - нет. Непосредственное создание проекта обычно разрешено администраторам, а конечные пользователи должны использовать ресурс requestproject.