open-cluster-management-io / open-cluster-management-io.github.io Goto Github PK
View Code? Open in Web Editor NEWwebsite code of open-cluster-management project
License: Apache License 2.0
website code of open-cluster-management project
License: Apache License 2.0
I followed the Quick Start to install cluster manager
on hub cluster and klusterlet
on managed cluster, all works fine. There is no need to install these 2 core components manually. Is it right?
Cluster manager: https://open-cluster-management.io/getting-started/core/cluster-manager/
Klusterlet agent: https://open-cluster-management.io/getting-started/core/register-cluster/
There are so many K8s distributions that it would be impossible to describe them all.
But I think it is possible to state some things.
There is probably first class support for kind, K3s, and OpenShift, which is currently documented.
As for kind, it appears to be used in e2e testing.
EKS as a hub is not supported.
open-cluster-management-io/enhancements#68
open-cluster-management-io/registration#185
aws/containers-roadmap#1856
I'm using the latest clusteradm
installed from source and the instructions in the Quick Start mention the --wait
flag which doesn't exist on both the init
and join
commands.
Additionally, in the Application Lifecycle addon installation instructions, the clusteradm install
command does not exist. I had to follow the directions to install it from source.
We have gotten some community feedback regarding it's hard to find the Slack link on our front page. It's currently just a small icon on the top right corner. It's been suggested we add a "Join our Slack" button on the front page next to "Get Started".
What do you think @qiujian16 ?
While using the copy
function for coping the code snippet, I found it doesn't works properly:
When i clicked the copy
of step 2 code snippet 1 here, what i get in my clipboard is :
$ kubectl -n open-cluster-management get pod --context ${CTX_HUB_CLUSTER}
NAME READY STATUS RESTARTS AGE
cluster-manager-695d945d4d-5dn8k 1/1 Running 0 19d
the non-command lines which don't start with a $
is also been copied.
I'm wondering that if it is ok for just add a judgment rule to the copy function to determine whether the line is stared with $
which means that it is a command should be copied.
Currently code snippets of the OCM instructions in https://open-cluster-management.io don't have clipboard-copy function, users have to select the code snippet and then copy to clipboard with menu or shortcut. We should add clipboard-copy button for code snippets of the OCM instructions so that users can just copy to clipboard by one click.
A library we can use is github's clipboard-copy library from https://github.com/github/clipboard-copy-element
#351
duplicate github error
blackquote is will be very useful markdown syntax as "reminders" in our document. e.g.
NOTE: ....
WARNING: ...
but currently our website doesnt support the syntax, i presume it's due to the limitations from hugo framework?
footer
/assign
There is spelling mistake as I see the homepage of OCM(https://open-cluster-management.io/concepts/architecture/)which is the /en/concepts/architecture.md file. It is misspelling the word ’declaratively‘ into ’delcaratively‘ at third row of “Hub-agent” architecture chapter。
security-model.png is a very useful diagram for understanding the architecture, but there is TODO
in it.
Perhaps it should be hub-kubeconfig-secret
.
https://github.com/open-cluster-management-io/registration/blob/ace1bdc1ccb2d6b221d761699a5e6db06e3aeefc/pkg/spoke/spokeagent.go#L72
To facilitate community members to easily contribute to the Open Cluster Management project, we need to find a way to securely add contributors to the open-cluster-management GitHub org.
Quick Start
Deploy a klusterlet agent on your managed cluster
Accept join request and verify
2. Result looks like the following after csr created:
4. Verify managedcluster has been created successfully:
Bootstrap via Operatorhub.io
Install and create a Klusterlet agent on your managed cluster.
Klusterlet agent
What is next
If the managed cluster status is not true, refer to Troubleshooting to debug on your cluster.
Troubleshooting
The managed cluster status is not true.
For example, the result below is shown when checking managedcluster .
You can use the commands below to get more debug info. If the provided info <remove can’t> doesn't help, please log an issue to us.
If the policy framework depends on Application lifecycle management then maybe that should listed first in the left nav?
Policy framework
Architecture
Need more explanation about the Policy Architecture. The diagram isn't self explanatory. If the info is in the git README let's point to that.
Install from prebuilt images on Quay.io
2. Ensure the pods are running on the hub with the following command:
https://github.com/open-cluster-management/policy-collection
Application lifecycle management
Need more of an explanation on the architecture and how the components are useful.
Community
Releases
Resources
Is the open-cluster-management, Github links correct? I see midstream repos?
Contribute
Is the repository link correct? I see midstream repos?
https://github.com/open-cluster-management-io/community/blob/main/MISSION.md
https://github.com/open-cluster-management-io/community#community-meetings
Website link appears wrong?
Community meetings link doesn't do anything?
The prereqs state:
The CRD
AppliedManifestWork
is installed in the managed cluster:$ kubectl get crd manifestworks.work.open-cluster-management.io
Shouldn't the specified CRD should be appliedmanifestworks
?
Changes indicated in italics or parenthesis <>.
ManagedCluster
ManagedCluster Registration
The admin user on the hub needs to approve the authn/authz of an agent_ separately by:
ManagedClusterSet
ManagedClusterSet is a cluster scoped API on the hub cluster to define a group of ManagedCluster.
For instance, you can create dev, staging, prod ManagedClusterSet for different purposes.
Or you can create notrh-america, europe, apac ManagedClusterSet based on the region of the ManagedCluster.
ManagedCluster is to implement the notion in KEP-1645, but we also expand its definition scope for workload placement.
To add a ManagedCluster to a ManagedClusterSet, user needs to set a label open-cluster-management.io/clusterset={clusterset name} on the ManagedCluster.
ClusterClaim
It provides an extension point for other actors in the managed cluster to report certain properties of a managed cluster to the hub. The registration-agent collects all the ClusterClaim in the managed cluster and syncs them in the clusterClaims field in the related ManagedCluster.
ManifestWork
What is ManifestWork
ManifestWork is to define a group of Kubernetes resources on the hub to be applied to the managed cluster. In the open-cluster-management project, a ManifestWork resource must be created in the cluster namespace. A work agent implemented in work project is run on the managed cluster and monitors the ManifestWork resource in the cluster namespace on the hub cluster.
Status tracking
Work agent will track all the resources defined in ManifestWork and update its status.
resourceStatus tracks the status of each manifest in the ManifestWork <remove .> and conditions reflects the overall status of the ManifestWork. Work agent currently checks whether a resource is Available, meaning the resource exists on the managed cluster, and Applied means the resource defined in ManifestWork has been applied to the managed cluster.
Here is an example.
Garbage collection
To ensure the resources applied by ManifestWork are reliably recorded, the work agent creates an AppliedManifestWork on the managed cluster for each ManifestWork as an anchor for resources relating to ManifestWork.
Placement
Bind ManagedClusterSet to a namespace
You can create a ManagedClusterSetBinding as follows to bind the ManagedClusterSet to the default namespace.
Select clusters in ManagedClusterSet
A slice of PlacementDecision will be created by placement controller in the same namespace, each with a label of open-cluster-management.io/placement=placement1. -> not sure what "A slice" means?
PlacementDecision can be consumed by another operand to decide how the workload should be placed in multiple clusters.
Future Work
various workload spread policies.
Add-ons
What is an add-on?
Open-cluster-management has a mechanism to help developers to develop an extension based on the foundation components for the purpose of working with multiple clusters . Examples of add-ons include:
2. A network solution that uses the hub to share network info and establish connection among managed clusters.
In general, if a management tool needs a different configuration for each managed cluster or a secured communication between the managed cluster and hub cluster, it can utilize the add-on mechanism in open-cluster-management to ease the installation and day 2 operation.
Add-on enablement
Each add-on should register itself on the hub by creating a ClusterManagementAddon resource on the hub cluster. For instance, the helloworld add-on can be registered to the hub cluster by creating:
An add-on should also have a controller running on the hub taking responsibility of add-on configuration for each managed cluster. When a user wants to enable the add-on for a certain managed cluster, the user should create a ManagedClusterAddon resource on the cluster namespace. The name of the ManagedClusterAddon should be the same name as the corresponding ClusterManagementAddon. For instance, the following example enables the helloworld add-on in cluster1.
Add-on framework
Addon-framework provides a library for developers to develop an add-on in open-cluster-management more easily.
Supported by block
/assign
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.