diff --git a/docs/serving/services/configure-probing.md b/docs/serving/services/configure-probing.md index 00f2dff2a58..10ecf33e44c 100644 --- a/docs/serving/services/configure-probing.md +++ b/docs/serving/services/configure-probing.md @@ -10,8 +10,8 @@ The general probing architecture looks like this:  -* Users can optionally define Readiness and/or Liveness probes in the `KnativeService` CR. -* The Liveness probes are directly executed by the Kubelet against the according container. +* Users can optionally define Readiness/Liveness and/or Startup probes in the `KnativeService` CR. +* The Liveness and Startup probes are directly executed by the Kubelet against the according container. * Readiness probes, on the other hand, are rewritten by Knative to be executed by the Queue-Proxy container. * Knative does probing from in places (e.g. Activator, net-* controller, and from Queue-Proxy), to make sure the whole network stack is configured and ready. Compared to vanilla Kubernetes, Knative uses faster (called aggressive probing) probing interval to shorten the cold-start times when a Pod is already up and running while Kubernetes itself has not yet reflected that readiness. * Knative will define a default Readiness probe for the primary user container when no probe is defined by the user. It will check for a TCP socket on the traffic port of the Knative Service. @@ -54,6 +54,10 @@ spec: livenessProbe: tcpSocket: port: 8080 + startupProbe: + httpGet: + port: 8080 + path: "/" - name: second-container image: <your-image> @@ -64,6 +68,10 @@ spec: livenessProbe: tcpSocket: port: 8089 + startupProbe: + httpGet: + port: 8080 + path: "/" ``` Supported probe types are: @@ -80,3 +88,33 @@ Supported probe types are: !!! warning As the Queue-Proxy container does not rewrite or check defined Liveness probes, it is important to know that Kubernetes can and will restart specific containers once a Liveness probe fails. Make sure to also include the same check that you define as a Liveness probe as a Readiness probe to make sure Knative is aware of the failing container in the Pod. Otherwise, you may see, it is possible that you see connection errors during the restart of a container caused by the Liveness probe failure. +## Progress Deadline and Startup Probes + +It is important to know that Knative has a deadline until a Knative Service should initially start up (or rollout). This is called [progress deadline](../configuration/deployment.md#configuring-progress-deadlines). When using Startup probes, it is important that the progress deadline is set to a value that is higher than the maximal Startup probe timeout (e.g. `success/failureThreshold` * `periodSeconds` * `timeoutSeconds`). Otherwise, it the Startup probe might never pass before the progress deadline is reached, and the Service will never successfully start up. The Knative Service will then mark this in the status of the Service object: + +```json +[ + { + "lastTransitionTime": "2024-06-06T09:28:01Z", + "message": "Revision \"runtime-00001\" failed with message: Initial scale was never achieved.", + "reason": "RevisionFailed", + "status": "False", + "type": "ConfigurationsReady" + }, + { + "lastTransitionTime": "2024-06-06T09:27:21Z", + "message": "Configuration \"runtime\" does not have any ready Revision.", + "reason": "RevisionMissing", + "status": "False", + "type": "Ready" + }, + { + "lastTransitionTime": "2024-06-06T09:27:21Z", + "message": "Configuration \"runtime\" does not have any ready Revision.", + "reason": "RevisionMissing", + "status": "False", + "type": "RoutesReady" + } +] +``` + diff --git a/docs/serving/services/probes-overview.drawio.svg b/docs/serving/services/probes-overview.drawio.svg index b4f05c310ac..d5921fcf37d 100644 --- a/docs/serving/services/probes-overview.drawio.svg +++ b/docs/serving/services/probes-overview.drawio.svg @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Do not edit this file with editors other than diagrams.net --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="568px" height="311px" viewBox="-0.5 -0.5 568 311" content="<mxfile host="drawio-plugin" modified="2024-02-08T10:08:19.147Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" etag="NPGoMYVYeLYSZp0f4-lf" version="20.5.3" type="embed"><diagram id="t6Lxg23--DSeO3M8Hso9" name="Page-1">7Vldb6M4FP01kToPifiIgTy2mXRWmo6U3Wi106fKgQt4h+DImCaZX792MF+GZJoOk1VWS6XKvr6+mONzri9kZM83+08Mb+MvNIBkZBnBfmR/HFkWMm3xXxoOhWHmeYUhYiQoTGZtWJHvoIyGsuYkgKzlyClNONm2jT5NU/B5y4YZo7u2W0iT9l23OIKOYeXjpGv9iwQ8LqweMmr7b0CiuLyzaaiRNfa/RYzmqbrfyLIfj1cxvMFlLOWfxTigu4bJXozsOaOUF63Nfg6JhLaErZj3eGK0WjeDlL9lglVMeMVJDuWKnURMfVgz0Ypk6xYtn1PMySuIR1sBeyW+bC1poEDnh3Kjj1sFEgxDzNrFhMNqi305uhPMFraYbxLRM0UzJEkypwllx7l2iOSftNOUN+zFJewZZ/QbNEac43VcsL5NaudegXHYN0xq2z4B3QBnB+GiRi1XUUhJzJ6p/q4mbGWLm2T1lBErkURV7JoooqG40s+baYc3v+eQw3jJ6P4wKMoBBi/0e9H0PViHA6E5a6M5RV00TasHTWcAMFEHzD8zYHPBKkxSEJw27raMbDA7fLhBaJGlQWteEVrnx9CuxFHjY/afgNa7IrRuB9rP+RoS4MMm2TC0/F4gA2ftoIGSqe2gFpAVQNcActYBDAJRjaguZTymEU1xsqitD21Ia58nSrcKyL+B84MqrXDOaRtm2BP+tdF+lqEmSPU+7lXkY+fQ6CxBZCLgwEpbKp72a7PTiCS7dahjr4x1ctMymjNf4aCKRo5ZBLxVsEiEzm4sg6SoAFql4U/sktele0+Ncfd8/+XpQ7ceGYuxPwAHIulkmaxFGF2LArfX70kE/YFbhzGS6kTUr09YSHBJM8IJTcXQmnJON+2tL33vExJJHy4p84BVzxcbIndXE1xKU+iq0zAeFo+WdI7xVi5ls4/kC8EEf88ZTPyE5sFLVqCTvYhqPSRRzrBc3IsIJSNuKZE3XIhn5pla4QCKNpF+oKOOoqfuBHUljQaQdHnE9bIlgFDQQNSiRndjK46Mj1v/b2YGY2KhRnIwz6eGKg3Uyn9uCf8n0oDbTQPTN6YBxQZjYnho1iLEuEwlb84UKvpSErZBNKdiUUm1mcag4lnUvObLmBbK8ozzgQoEOoHuGcOHhttRUtnpJduz9oJt1zi7LlvTkuYvGsUKTgBkabhrD0XDMAM+0tVVbeLbBFcmiHah11SbLrWeNHsjx/CVtYYu09rYmJimYw8irqmhMdV+p7RsR5OWXridkFYdaFi69n13uTH2mb+g4Othn3Nppjddbxju6VnSeCf3kDeblOVj9Q7sTFyjcaHB2HjpYeBo35HKLyGnnkb3R+aZw+A90uh+Wro5afyKd6HpANKwkKudxe4wUtG/Q7y3AkK2XrVfmqbLokN/UE1gw2Rx++Ki446qYZwnvOc9sar/b7UkuQ7zLy9JLKcsSUpKoP8rlJrbolv/6FS41z/s2Yt/AA==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="159" y="130" width="390" height="180" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 388px; height: 1px; padding-top: 220px; margin-left: 160px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Knative Service Pod</div></div></div></foreignObject><text x="354" y="224" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Knative Service Pod...</text></switch></g><rect x="179" y="190" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 220px; margin-left: 180px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Queue-Proxy</div></div></div></foreignObject><text x="239" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Queue-Proxy</text></switch></g><rect x="409" y="150" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 410px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UserContainer (primary)</div></div></div></foreignObject><text x="469" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UserContainer (prima...</text></switch></g><rect x="409" y="220" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 250px; margin-left: 410px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UserContainer (Sidecar)</div></div></div></foreignObject><text x="469" y="254" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UserContainer (Sidec...</text></switch></g><rect x="254" y="0" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 255px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Kubelet</div></div></div></foreignObject><text x="314" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Kubelet</text></switch></g><path d="M 86.5 220 L 152.63 220" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 157.88 220 L 150.88 223.5 L 152.63 220 L 150.88 216.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="39" y="195" width="47.5" height="50" fill="none" stroke="none" pointer-events="all"/><path d="M 39 200.76 C 39.35 197.72 41.73 195.33 44.73 195 L 76.64 195 L 86.5 204.95 L 86.5 238.79 C 86.33 242.12 83.73 244.79 80.45 245 L 44.73 245 C 41.77 244.68 39.41 242.37 39 239.38 Z M 42.88 238.48 C 42.88 239.69 43.72 240.72 44.88 240.96 L 80.53 240.96 C 81.66 240.7 82.47 239.67 82.47 238.48 L 82.47 207.27 L 74.5 207.27 L 74.5 199.09 L 44.88 199.09 C 43.81 199.36 43.04 200.3 42.98 201.41 Z M 51.45 211.01 L 73.45 211.01 L 73.45 215.15 L 51.45 215.15 Z M 51.45 218.89 L 73.45 218.89 L 73.45 223.03 L 51.45 223.03 Z M 51.45 226.77 L 73.45 226.77 L 73.45 230.96 L 51.45 230.96 Z" fill="#00bef2" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 252px; margin-left: 63px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Knative Service (YAML)<br />- Readiness Probes<br />- Liveness Probes<br /></div></div></div></foreignObject><text x="63" y="264" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Knative...</text></switch></g><path d="M 284 60 L 284 110 L 239 110 L 239 183.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 239 188.88 L 235.5 181.88 L 239 183.63 L 242.5 181.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 90px; margin-left: 229px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Knative defined <br />Readiness-Probe</div></div></div></foreignObject><text x="229" y="93" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Knative defined...</text></switch></g><path d="M 374 30 L 469 30 L 469 143.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 469 148.88 L 465.5 141.88 L 469 143.63 L 472.5 141.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 30px; margin-left: 469px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">User defined<br />Liveness Probes</div></div></div></foreignObject><text x="469" y="33" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">User defined...</text></switch></g><path d="M 374 30 L 559 30 L 559 250 L 535.37 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 530.12 250 L 537.12 246.5 L 535.37 250 L 537.12 253.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 299 220 L 354 220 L 354 250 L 402.63 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 407.88 250 L 400.88 253.5 L 402.63 250 L 400.88 246.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 299 220 L 354 220 L 354 180 L 402.63 180" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 407.88 180 L 400.88 183.5 L 402.63 180 L 400.88 176.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 220px; margin-left: 359px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">User defined<br />(or default)<br />ReadinessProbes</div></div></div></foreignObject><text x="359" y="223" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">User defined...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="568px" height="311px" viewBox="-0.5 -0.5 568 311" content="<mxfile host="drawio-plugin" modified="2024-07-08T05:55:01.661Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" etag="smRkUPAWOwaTAY79-LSi" version="22.1.22" type="embed"><diagram id="t6Lxg23--DSeO3M8Hso9" name="Page-1">7Vldb6M4FP01kToPifiIgTy2mXRWmo6U3Wi106fKgQvxDsGRMU0yv35tMF+GZJoOk1VWS6XKvr6+mONzri9kZM+3h08M7zZfaADxyDKCw8j+OLIsx7XFf2k4FgYXmYUhYiQoTA3DinwHZTSUNSMBpC1HTmnMya5t9GmSgM9bNswY3bfdQhq377rDEXQMKx/HXetfJOCbwuoho7b/BiTalHc2DTWyxv63iNEsUfcbWfZjfhXDW1zGUv7pBgd03zDZi5E9Z5TyorU9zCGW0JawFfMeT4xW62aQ8LdMsIoJrzjOoFyxE4upD2smWpFs3aLlc4I5eQXxaCtgr8SXrSUNFOj8WG50vlUgwTDErP2GcFjtsC9H94LZwrbh21j0TNEMSRzPaUxZPtcOkfyTdprwhr24hD3ljH6DxoiTX/mC9W1SO/cKjMOhYVLb9gnoFjg7Chc1armKQkpi9kz19zVhK9umSVZPGbESSVTFrokiGoor/byZdnjzewYZjJeMHo6Dohxg8EK/F03fg3U4EJqzNppT1EXTtHrQdAYAE3XA/DMFNheswiQBwWnjbsfIFrPjhxuEFlkatOYVoXV+DO1KHDU+Zv8JaL0rQut2oP2crSEGPmySDUPL7wUycNYOGiiZ2g5qAVkBdA0gZx3AIBDViOpSxjc0ogmOF7X1oQ1p7fNE6U4B+TdwflSlFc44bcMMB8K/NtrPMtQEqd7Hg4qcd46NzhJEJgIOrLQl4mm/NjuNSLJbh8p7ZayTm5bSjPkKB68wccwi4K2CRSJ0dmMZxEUF0CoNf2KXvC7de2qMu+f7L08fuvXIWIz9ATgQSSdNZS3C6FoUuL1+TyLoD9w6jJFUJ6J+fcJCgkuaEk5oIobWlHO6bW996Xsfk0j6cEmZB6x6vtgQubua4BKaQFedhvGweLSk8wbv5FK2h0i+EEzw94zBxI9pFrykBTrpi6jWQxJlDMvFvYhQMuKOEnnDhXhmnqoVDqBoE+kHOuooeupOUFfSaABJl0dcL1sCCAUNRC1qdDe24sg43/p/MzMYEws1koN5PjVUaaBW/nNL+D+RBtxuGpi+MQ0oNhgTw0OzFiHGZSp5c6ZQ0ZeSsA2iORWLSqrNNAYVz6LmNV/GtFCWZ5wPVCDQCXTPGD423HJJpaeXbM/aC7Zd4+y6bE1Lmr9oFCs4AZCl4a49FA3DFPhIV1e1iW8TXJkg2oVeU2261BppVpjwNk+C+X+Z0QXUPNs1UvCNHNFX1iG6TIdjY2Kajj2I8KaGxmL7nbKzHU12elF3QnZ1oGGp3PdN5sbYZ/6CYrCHfc6lp4DpesNwT8+gxju5h7zZpCwtq/djZ+IajQsNxsZLDwpH+8ZUfiU59TS6PzLPHBTvkUb3s9PNSeNXvCdNB5CGhVztnHaHkYr+jeK91RGy9Yr+0jRdFiT6g2oCGyaL2xcXJHdUDeMs5j3vkNW7wa2WJNdh/uUlieWUJUlJCfR/hVJzW3TrH6QK9/pHP3vxDw==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0"/><g><rect x="159" y="130" width="390" height="180" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 388px; height: 1px; padding-top: 220px; margin-left: 160px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Knative Service Pod</div></div></div></foreignObject><text x="354" y="224" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Knative Service Pod...</text></switch></g><rect x="179" y="190" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 220px; margin-left: 180px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Queue-Proxy</div></div></div></foreignObject><text x="239" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Queue-Proxy</text></switch></g><rect x="409" y="150" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 410px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UserContainer (primary)</div></div></div></foreignObject><text x="469" y="184" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UserContainer (prima...</text></switch></g><rect x="409" y="220" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 250px; margin-left: 410px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">UserContainer (Sidecar)</div></div></div></foreignObject><text x="469" y="254" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UserContainer (Sidec...</text></switch></g><rect x="254" y="0" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 255px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Kubelet</div></div></div></foreignObject><text x="314" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Kubelet</text></switch></g><path d="M 86.5 220 L 152.63 220" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 157.88 220 L 150.88 223.5 L 152.63 220 L 150.88 216.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="39" y="195" width="47.5" height="50" fill="none" stroke="none" pointer-events="all"/><path d="M 39 200.76 C 39.35 197.72 41.73 195.33 44.73 195 L 76.64 195 L 86.5 204.95 L 86.5 238.79 C 86.33 242.12 83.73 244.79 80.45 245 L 44.73 245 C 41.77 244.68 39.41 242.37 39 239.38 Z M 42.88 238.48 C 42.88 239.69 43.72 240.72 44.88 240.96 L 80.53 240.96 C 81.66 240.7 82.47 239.67 82.47 238.48 L 82.47 207.27 L 74.5 207.27 L 74.5 199.09 L 44.88 199.09 C 43.81 199.36 43.04 200.3 42.98 201.41 Z M 51.45 211.01 L 73.45 211.01 L 73.45 215.15 L 51.45 215.15 Z M 51.45 218.89 L 73.45 218.89 L 73.45 223.03 L 51.45 223.03 Z M 51.45 226.77 L 73.45 226.77 L 73.45 230.96 L 51.45 230.96 Z" fill="#00bef2" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 252px; margin-left: 63px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Knative Service (YAML)<br />- Readiness Probes<br />- Liveness Probes<br /></div></div></div></foreignObject><text x="63" y="264" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Knative...</text></switch></g><path d="M 284 60 L 284 110 L 239 110 L 239 183.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 239 188.88 L 235.5 181.88 L 239 183.63 L 242.5 181.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 90px; margin-left: 229px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Knative defined <br />Readiness-Probe</div></div></div></foreignObject><text x="229" y="94" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Knative defined...</text></switch></g><path d="M 374 30 L 469 30 L 469 143.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 469 148.88 L 465.5 141.88 L 469 143.63 L 472.5 141.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 30px; margin-left: 469px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">User defined<br />Liveness & Startup Probes</div></div></div></foreignObject><text x="469" y="33" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">User defined...</text></switch></g><path d="M 374 30 L 559 30 L 559 250 L 535.37 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 530.12 250 L 537.12 246.5 L 535.37 250 L 537.12 253.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 299 220 L 354 220 L 354 250 L 402.63 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 407.88 250 L 400.88 253.5 L 402.63 250 L 400.88 246.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 299 220 L 354 220 L 354 180 L 402.63 180" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 407.88 180 L 400.88 183.5 L 402.63 180 L 400.88 176.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 220px; margin-left: 359px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">User defined<br />(or default)<br />ReadinessProbes</div></div></div></foreignObject><text x="359" y="223" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">User defined...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file