Comments (3)
@sohrab- thanks for reporting feedback. The machine API is your source of truth for managing machines therefore terminate nodes via console is not recommended. As a workaround for the inconsistent status you have two choices:
1 - To add the machine.openshift.io/exclude-node-draining
annotation to the orphan machine so then deletion will go through (this is fixed in new versions so there won't be need to add the annotation)
2 - Manually approve the new generated CSR via kubectl certificate approve
so new instance becomes a node. This behaviour is likely to change soon in favour of no new instance being generated for the old machine object. So we encourage to delete corrupted a machines and let the MachineSet to create a new one.
If this is expected, is there any other way to protect against worker loss automatically (self-healing)?
There's a "tech preview" feature "Machine health checking" where you can targets machines that you want to be self-healed and automatically recreated when a problem is detected
from machine-api-operator.
@sohrab- This a known behavior. Removing machine by deleting the cloud instance is not expected way. Machine should be removed through machineset only.
Now explanation for the behavior:
Newly created instance could not get registered as k8s node. Why? Because csr approver, https://github.com/openshift/cluster-machine-approver, did not approve the csr for the new instance as a security policy. And because it did not become node, machine object was also not updated to point to the new instance.
Why old machine not getting deleted? There is a finalizer on machine which does not let the machine deletion until succesful response from the cloud instance deletion api. In this case, i guess that would be returning an error because you deleted it from console and therefore machine not getting deleted.
/close
from machine-api-operator.
Thanks, @vikaschoudhary16.
A few more questions:
- When you say "known behaviour", do you mean this is working as designed or a known bug?
- If this is expected, is there any other way to protect against worker loss automatically (self-healing)?
- How can we clean-up those orphan Machines now? The underlying instances are gone. Do I need to get into etcd for this?
from machine-api-operator.
Related Issues (20)
- Unable to deploy machinesets on IBM Cloud HOT 5
- Bandwidth specs not available for nodes added by Machineset API in AWS HOT 10
- Need mertics on maxReplicas and minReplicas of MachineAutoscaler HOT 5
- Labels do not propagate to node(s) from machineset API HOT 7
- Failed Nodes are not retried by Machineset API HOT 6
- Use Operator Framework for Instascale controller HOT 1
- support huaweicloud HOT 4
- Is it possible to create a `MachineSet` with `VSphereMachineProviderSpec` and specify `thin`provisioning? HOT 1
- vSphere Tags not working HOT 1
- MachineSets with Node Auto-Provisioning feature
- Precedence in Cloud Identification HOT 4
- cluster-api HOT 5
- Update metrics doc with provider controller information HOT 5
- Update metrics doc with controller specific information HOT 2
- [vSphere] Hashed machine names not working with external load balancer and ingress HOT 6
- MachineHealthCheck not working if Node goes down HOT 5
- how to recover the master node when the master machine status is Failed HOT 4
- MachineHealthCheck fights with MachineSet on invalid configuration HOT 20
- Feature Request: Allow for local-ssd in GCP Actuator HOT 4
- kubeRBACProxy image are not available in pkg/operator/fixtures/images.json HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from machine-api-operator.