{"id":11264,"date":"2026-09-01T13:32:08","date_gmt":"2026-09-01T08:02:08","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=11264"},"modified":"2026-09-01T13:34:13","modified_gmt":"2026-09-01T08:04:13","slug":"how-to-configure-cert-manager-clusterissuer-with-cloudflare-api-token-on-kubernetes","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/how-to-configure-cert-manager-clusterissuer-with-cloudflare-api-token-on-kubernetes\/","title":{"rendered":"How to Configure cert-manager ClusterIssuer with Cloudflare API Token on Kubernetes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Managing SSL certificates manually in Kubernetes can be time-consuming and error-prone. Using <strong>cert-manager<\/strong> with <strong>Cloudflare DNS-01 Challenge<\/strong>, you can automatically issue and renew Let&#8217;s Encrypt certificates for your applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide covers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Installing cert-manager<\/li>\n\n\n\n<li>Creating a Cloudflare API Token<\/li>\n\n\n\n<li>Configuring Kubernetes Secret<\/li>\n\n\n\n<li>Creating a ClusterIssuer<\/li>\n\n\n\n<li>Issuing SSL certificates automatically<\/li>\n\n\n\n<li>Using specific Cloudflare Zones<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting, ensure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kubernetes Cluster<\/li>\n\n\n\n<li>kubectl configured<\/li>\n\n\n\n<li>NGINX Ingress Controller installed<\/li>\n\n\n\n<li>Domain managed by Cloudflare<\/li>\n\n\n\n<li>cert-manager installed<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Verify cert-manager:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get pods -n cert-manager<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">All pods should be in <code>Running<\/code> state.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Create a Cloudflare API Token<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare recommends using <strong>API Tokens<\/strong> instead of the Global API Key because they provide granular permissions and improved security.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Cloudflare Dashboard\n\u2192 My Profile\n\u2192 API Tokens\n\u2192 Create Token<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Select:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Edit Zone DNS<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Assign the following permissions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Zone - DNS - Edit\nZone - Zone - Read<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Limit access to your specific domain (recommended) or all zones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Zone Resources:\nInclude \u2192 Specific Zone \u2192 example.com<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Click:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Create Token<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Copy and save the token securely.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Create Kubernetes Secret<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Store the Cloudflare API token inside Kubernetes.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl create secret generic cloudflare-api-token-secret \\\n  --from-literal=api-token=YOUR_CLOUDFLARE_API_TOKEN \\\n  -n cert-manager<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get secret -n cert-manager<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Expected:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cloudflare-api-token-secret<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Create ClusterIssuer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Create a file:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano clusterissuer.yaml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: cert-manager.io\/v1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-cloudflare\nspec:\n  acme:\n    email: admin@example.com\n    server: https:\/\/acme-v02.api.letsencrypt.org\/directory\n\n    privateKeySecretRef:\n      name: letsencrypt-cloudflare\n\n    solvers:\n    - dns01:\n        cloudflare:\n          apiTokenSecretRef:\n            name: cloudflare-api-token-secret\n            key: api-token<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apply:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl apply -f clusterissuer.yaml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get clusterissuer<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Expected:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">letsencrypt-cloudflare   True<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">cert-manager supports authentication using <code>apiTokenSecretRef<\/code>, which is the recommended method for Cloudflare integrations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Restrict to a Specific Cloudflare Zone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you manage multiple domains, specify which zone should use Cloudflare DNS validation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: cert-manager.io\/v1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-cloudflare\nspec:\n  acme:\n    email: admin@example.com\n    server: https:\/\/acme-v02.api.letsencrypt.org\/directory\n\n    privateKeySecretRef:\n      name: letsencrypt-cloudflare\n\n    solvers:\n    - dns01:\n        cloudflare:\n          apiTokenSecretRef:\n            name: cloudflare-api-token-secret\n            key: api-token\n\n      selector:\n        dnsZones:\n        - example.com<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This configuration tells cert-manager to use this solver only for:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">example.com\n*.example.com\napi.example.com\napp.example.com<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">and other subdomains.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Create Certificate Resource<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano certificate.yaml<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: cert-manager.io\/v1\nkind: Certificate\nmetadata:\n  name: example-com-tls\n  namespace: default\nspec:\n  secretName: example-com-tls\n\n  issuerRef:\n    name: letsencrypt-cloudflare\n    kind: ClusterIssuer\n\n  dnsNames:\n  - example.com\n  - \"*.example.com\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apply:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl apply -f certificate.yaml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check status:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get certificate<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Use Certificate in Ingress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Example Ingress:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: app-ingress\n  annotations:\n    cert-manager.io\/cluster-issuer: letsencrypt-cloudflare\nspec:\n  ingressClassName: nginx\n\n  tls:\n  - hosts:\n    - app.example.com\n    secretName: example-com-tls\n\n  rules:\n  - host: app.example.com\n    http:\n      paths:\n      - path: \/\n        pathType: Prefix\n        backend:\n          service:\n            name: app-service\n            port:\n              number: 80<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apply:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl apply -f ingress.yaml<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Verify Certificate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check certificate:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl describe certificate example-com-tls<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check challenges:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get challenges -A<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check orders:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get orders -A<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Common Errors<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Error: Permission Denied<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">requires permission to list zones<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fix:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure the Cloudflare API Token contains:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Zone - DNS - Edit\nZone - Zone - Read<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These permissions are required for cert-manager to discover and update DNS records.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error: Secret Not Found<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">secret cloudflare-api-token-secret not found<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl get secret -n cert-manager<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Error: Challenge Failed<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Check logs:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">kubectl logs -n cert-manager deploy\/cert-manager<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By integrating cert-manager with Cloudflare DNS-01 validation, Kubernetes can automatically issue and renew Let&#8217;s Encrypt SSL certificates without manual intervention. This approach is secure, scalable, and ideal for production environments using Cloudflare-managed DNS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions (FAQs)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Why should I use a Cloudflare API Token instead of the Global API Key?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare API Tokens are more secure because they allow you to grant only the permissions required for DNS validation. If the token is compromised, its impact is limited to the assigned zones and permissions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. What permissions are required for cert-manager?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Your Cloudflare API Token should include:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Zone - DNS - Edit\nZone - Zone - Read<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These permissions allow cert-manager to create and remove temporary TXT records used during the DNS-01 challenge.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Can I use a Global API Key instead of an API Token?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, cert-manager supports both methods. However, API Tokens are strongly recommended because they follow the principle of least privilege and provide better security.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Articles<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/pheonixsolutions.com\/blog\/wp-admin\/post.php?post=66&amp;action\" data-type=\"link\" data-id=\"https:\/\/pheonixsolutions.com\/blog\/wp-admin\/post.php?post=66&amp;action\">Cloudflare and Its Uses<\/a><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Talk to our experts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Looking for the right technology solution for your business? Our team of experts can help you with development, cloud, DevOps, design, and a wide range of other technology needs. Get in touch with our team <a href=\"https:\/\/pheonixsolutions.com\/contact\" rel=\"noreferrer noopener\" target=\"_blank\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Managing SSL certificates manually in Kubernetes can be time-consuming and error-prone. Using cert-manager with Cloudflare DNS-01 Challenge, you can [&hellip;]<\/p>\n","protected":false},"author":532,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1020,1019],"tags":[],"class_list":["post-11264","post","type-post","status-publish","format-standard","hentry","category-containers-kubernetes","category-cloud-aws","psol-cat-containers-kubernetes"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-2VG","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/11264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/532"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=11264"}],"version-history":[{"count":4,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/11264\/revisions"}],"predecessor-version":[{"id":11274,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/11264\/revisions\/11274"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=11264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=11264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=11264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}