{"id":2032,"date":"2024-07-02T13:56:59","date_gmt":"2024-07-02T13:56:59","guid":{"rendered":"https:\/\/www.w3computing.com\/articles\/?p=2032"},"modified":"2024-07-02T13:57:22","modified_gmt":"2024-07-02T13:57:22","slug":"how-to-use-kubernetes-with-kubeedge-for-edge-computing","status":"publish","type":"post","link":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/","title":{"rendered":"How to Use Kubernetes with KubeEdge for Edge Computing"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In recent years, edge computing has gained significant traction as organizations strive to bring data processing closer to the source of data generation. This shift is driven by the need for low latency, reduced bandwidth usage, enhanced security, and increased reliability. Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge. This tutorial delves into the intricacies of using Kubernetes with KubeEdge for edge computing, tailored for an audience familiar with Kubernetes basics but looking to deepen their understanding and application in edge scenarios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding KubeEdge<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">KubeEdge is an open-source project that extends Kubernetes capabilities to the edge computing environment. It facilitates the orchestration of applications and services across cloud and edge environments, allowing edge devices to operate independently and providing a seamless experience from cloud to edge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key components of KubeEdge include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cloud Core<\/strong>: The cloud-side component of KubeEdge that interacts with the Kubernetes API server and manages edge nodes.<\/li>\n\n\n\n<li><strong>Edge Core<\/strong>: The edge-side component that runs on edge nodes, managing communication between the cloud and edge, and ensuring the edge node operates autonomously when disconnected from the cloud.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before diving into KubeEdge, ensure you have the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A working Kubernetes cluster (version 1.15 or later).<\/li>\n\n\n\n<li>Basic understanding of Kubernetes concepts such as pods, deployments, and services.<\/li>\n\n\n\n<li>Familiarity with Linux commands and system administration.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up KubeEdge<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Setting Up the Kubernetes Cluster<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Start by setting up a Kubernetes cluster, which will serve as the central control plane for your KubeEdge deployment. You can use managed Kubernetes services like Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), or set up a cluster using tools like kubeadm.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Update the package index and install packages needed for installation<\/span>\nsudo apt-get update\nsudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common\n\n<span class=\"hljs-comment\"># Download the Google Cloud public signing key<\/span>\ncurl -fsSL https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg | sudo apt-key add -\n\n<span class=\"hljs-comment\"># Add the Kubernetes apt repository<\/span>\nsudo add-apt-repository <span class=\"hljs-string\">\"deb http:\/\/apt.kubernetes.io\/ kubernetes-xenial main\"<\/span>\n\n<span class=\"hljs-comment\"># Install kubelet, kubeadm, and kubectl<\/span>\nsudo apt-get update\nsudo apt-get install -y kubelet kubeadm kubectl\n\n<span class=\"hljs-comment\"># Initialize the Kubernetes cluster<\/span>\nsudo kubeadm init\n\n<span class=\"hljs-comment\"># Set up the local kubeconfig<\/span>\nmkdir -p <span class=\"hljs-variable\">$HOME<\/span>\/.kube\nsudo cp -i \/etc\/kubernetes\/admin.conf <span class=\"hljs-variable\">$HOME<\/span>\/.kube\/config\nsudo chown $(id -u):$(id -g) <span class=\"hljs-variable\">$HOME<\/span>\/.kube\/config<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install a pod network add-on (for example, Flannel):<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">kubectl apply -f https:\/\/raw.githubusercontent.com\/coreos\/flannel\/master\/Documentation\/kube-flannel.yml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 2: Installing KubeEdge<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Cloud Core Setup<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Download KubeEdge:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   wget https:\/\/github.com\/kubeedge\/kubeedge\/releases\/download\/v1.7.1\/kubeedge-v1.7.1-linux-amd64.tar.gz\n   tar -xvf kubeedge-v1.7.1-linux-amd64.tar.gz<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Install Cloud Core:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   sudo cp kubeedge\/cloud\/edgecontroller \/usr\/<span class=\"hljs-built_in\">local<\/span>\/bin\/\n   sudo cp kubeedge\/cloud\/admission \/usr\/<span class=\"hljs-built_in\">local<\/span>\/bin\/<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Configure Cloud Core:<\/strong><br>Create the configuration file for the edgecontroller.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-string\">cat<\/span> <span class=\"hljs-string\">&lt;&lt;EOF<\/span> <span class=\"hljs-string\">|<\/span> <span class=\"hljs-string\">sudo<\/span> <span class=\"hljs-string\">tee<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/config\/cloudcore.yaml<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">CloudCore<\/span>\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">cloudcore.config.kubeedge.io\/v1alpha1<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">cloudcore<\/span>\n   <span class=\"hljs-attr\">controller:<\/span>\n     <span class=\"hljs-attr\">kube:<\/span>\n       <span class=\"hljs-attr\">master:<\/span> <span class=\"hljs-string\">http:\/\/127.0.0.1:8080<\/span>\n       <span class=\"hljs-attr\">namespace:<\/span> <span class=\"hljs-string\">default<\/span>\n   <span class=\"hljs-attr\">modules:<\/span>\n     <span class=\"hljs-attr\">cloudHub:<\/span>\n       <span class=\"hljs-attr\">enable:<\/span> <span class=\"hljs-literal\">true<\/span>\n       <span class=\"hljs-attr\">address:<\/span> <span class=\"hljs-number\">0.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>\n       <span class=\"hljs-attr\">port:<\/span> <span class=\"hljs-number\">10000<\/span>\n       <span class=\"hljs-attr\">quicPort:<\/span> <span class=\"hljs-number\">10001<\/span>\n       <span class=\"hljs-attr\">httpsPort:<\/span> <span class=\"hljs-number\">10002<\/span>\n       <span class=\"hljs-attr\">nodeLimit:<\/span> <span class=\"hljs-number\">10<\/span>\n       <span class=\"hljs-attr\">tlsCAFile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/ca\/rootCA.crt<\/span>\n       <span class=\"hljs-attr\">tlsCertFile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.crt<\/span>\n       <span class=\"hljs-attr\">tlsPrivateKeyFile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.key<\/span>\n     <span class=\"hljs-attr\">edgeController:<\/span>\n       <span class=\"hljs-attr\">kube:<\/span>\n         <span class=\"hljs-attr\">master:<\/span> <span class=\"hljs-string\">http:\/\/127.0.0.1:8080<\/span>\n         <span class=\"hljs-attr\">namespace:<\/span> <span class=\"hljs-string\">default<\/span>\n   <span class=\"hljs-string\">EOF<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Start Cloud Core:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   sudo cloudcore --config \/etc\/kubeedge\/config\/cloudcore.yaml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Edge Core Setup<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install Edge Core:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   sudo cp kubeedge\/edge\/edgecore \/usr\/<span class=\"hljs-built_in\">local<\/span>\/bin\/<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Configure Edge Core:<\/strong><br>Create the configuration file for the edgecore.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-string\">cat<\/span> <span class=\"hljs-string\">&lt;&lt;EOF<\/span> <span class=\"hljs-string\">|<\/span> <span class=\"hljs-string\">sudo<\/span> <span class=\"hljs-string\">tee<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/config\/edgecore.yaml<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">EdgeCore<\/span>\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">edgecore.config.kubeedge.io\/v1alpha1<\/span>\n   <span class=\"hljs-attr\">modules:<\/span>\n     <span class=\"hljs-attr\">edgeHub:<\/span>\n       <span class=\"hljs-attr\">enable:<\/span> <span class=\"hljs-literal\">true<\/span>\n       <span class=\"hljs-attr\">websocket:<\/span>\n         <span class=\"hljs-attr\">url:<\/span> <span class=\"hljs-string\">wss:\/\/&lt;cloudcore-ip&gt;:10000\/e632aba927ea4ac2b575ec1603d56f10\/&lt;edge-node-id&gt;<\/span>\n         <span class=\"hljs-attr\">certfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.crt<\/span>\n         <span class=\"hljs-attr\">keyfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.key<\/span>\n       <span class=\"hljs-attr\">quic:<\/span>\n         <span class=\"hljs-attr\">url:<\/span> <span class=\"hljs-number\">127.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span><span class=\"hljs-string\">:10001<\/span>\n         <span class=\"hljs-attr\">certfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.crt<\/span>\n         <span class=\"hljs-attr\">keyfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.key<\/span>\n       <span class=\"hljs-attr\">controller:<\/span>\n         <span class=\"hljs-attr\">protocol:<\/span> <span class=\"hljs-string\">websocket<\/span>\n     <span class=\"hljs-attr\">edgeMesh:<\/span>\n       <span class=\"hljs-attr\">enable:<\/span> <span class=\"hljs-literal\">true<\/span>\n   <span class=\"hljs-string\">EOF<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Start Edge Core:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   sudo edgecore --config \/etc\/kubeedge\/config\/edgecore.yaml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 3: Registering Edge Nodes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To connect an edge node to the cloud, you need to create a token and use it to join the edge node.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create Token:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   kubectl create token edge-node-token<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Join Edge Node:<\/strong> On the edge node, use the token to join:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   sudo keadm join --cloudcore-ipport=&lt;cloudcore-ip&gt;:10000 --token=&lt;generated-token&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Deploying Applications to Edge Nodes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Deploying a Simple Application<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create a Deployment:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-string\">cat<\/span> <span class=\"hljs-string\">&lt;&lt;EOF<\/span> <span class=\"hljs-string\">|<\/span> <span class=\"hljs-string\">kubectl<\/span> <span class=\"hljs-string\">apply<\/span> <span class=\"hljs-string\">-f<\/span> <span class=\"hljs-bullet\">-<\/span>\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">apps\/v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Deployment<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx-deployment<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">replicas:<\/span> <span class=\"hljs-number\">1<\/span>\n     <span class=\"hljs-attr\">selector:<\/span>\n       <span class=\"hljs-attr\">matchLabels:<\/span>\n         <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n     <span class=\"hljs-attr\">template:<\/span>\n       <span class=\"hljs-attr\">metadata:<\/span>\n         <span class=\"hljs-attr\">labels:<\/span>\n           <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n       <span class=\"hljs-attr\">spec:<\/span>\n         <span class=\"hljs-attr\">containers:<\/span>\n         <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx<\/span>\n           <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">nginx:1.14.2<\/span>\n           <span class=\"hljs-attr\">ports:<\/span>\n           <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">containerPort:<\/span> <span class=\"hljs-number\">80<\/span>\n   <span class=\"hljs-string\">EOF<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Schedule Pod to Edge Node:<\/strong><br>To ensure the pod is scheduled on the edge node, use nodeSelector or affinity rules:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-string\">cat<\/span> <span class=\"hljs-string\">&lt;&lt;EOF<\/span> <span class=\"hljs-string\">|<\/span> <span class=\"hljs-string\">kubectl<\/span> <span class=\"hljs-string\">apply<\/span> <span class=\"hljs-string\">-f<\/span> <span class=\"hljs-bullet\">-<\/span>\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">apps\/v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Deployment<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx-deployment<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">replicas:<\/span> <span class=\"hljs-number\">1<\/span>\n     <span class=\"hljs-attr\">selector:<\/span>\n       <span class=\"hljs-attr\">matchLabels:<\/span>\n         <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n     <span class=\"hljs-attr\">template:<\/span>\n       <span class=\"hljs-attr\">metadata:<\/span>\n         <span class=\"hljs-attr\">labels:<\/span>\n           <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n       <span class=\"hljs-attr\">spec:<\/span>\n         <span class=\"hljs-attr\">nodeSelector:<\/span>\n           <span class=\"hljs-attr\">kubeedge.io\/edge-node:<\/span> <span class=\"hljs-string\">&lt;edge-node-id&gt;<\/span>\n         <span class=\"hljs-attr\">containers:<\/span>\n         <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx<\/span>\n           <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">nginx:1.14.2<\/span>\n           <span class=\"hljs-attr\">ports:<\/span>\n           <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">containerPort:<\/span> <span class=\"hljs-number\">80<\/span>\n   <span class=\"hljs-string\">EOF<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Monitoring and Logging<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Monitoring and logging are crucial for managing and troubleshooting applications running on edge nodes. KubeEdge supports integration with Prometheus and Fluentd for monitoring and logging.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install Prometheus:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">   kubectl apply -f https:\/\/raw.githubusercontent.com\/prometheus-operator\/prometheus-operator\/master\/bundle.yaml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Install Fluentd:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-string\">cat<\/span> <span class=\"hljs-string\">&lt;&lt;EOF<\/span> <span class=\"hljs-string\">|<\/span> <span class=\"hljs-string\">kubectl<\/span> <span class=\"hljs-string\">apply<\/span> <span class=\"hljs-string\">-f<\/span> <span class=\"hljs-bullet\">-<\/span>\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">ConfigMap<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">fluentd-config<\/span>\n     <span class=\"hljs-attr\">namespace:<\/span> <span class=\"hljs-string\">kube-system<\/span>\n   <span class=\"hljs-attr\">data:<\/span>\n     <span class=\"hljs-attr\">fluent.conf:<\/span> <span class=\"hljs-string\">|\n       &lt;source&gt;\n         @type forward\n         port 24224\n         bind 0.0.0.0\n       &lt;\/source&gt;\n       &lt;match **&gt;\n         @type stdout\n       &lt;\/match&gt;\n<\/span>   <span class=\"hljs-string\">EOF<\/span>\n\n   <span class=\"hljs-string\">kubectl<\/span> <span class=\"hljs-string\">apply<\/span> <span class=\"hljs-string\">-f<\/span> <span class=\"hljs-string\">https:\/\/raw.githubusercontent.com\/fluent\/fluentd-kubernetes-daemonset\/master\/fluentd-daemonset-elasticsearch-rbac.yaml<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Advanced Features and Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Device Management<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">KubeEdge provides a robust device management framework that supports various protocols such as MQTT and OPC-UA. This allows you to manage and control edge devices efficiently.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Define a Device Model:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">devices.kubeedge.io\/v1alpha1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">DeviceModel<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">temperature-sensor-model<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">properties:<\/span>\n       <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">temperature<\/span>\n         <span class=\"hljs-attr\">description:<\/span> <span class=\"hljs-string\">\"Temperature of the device\"<\/span>\n         <span class=\"hljs-attr\">type:<\/span>\n           <span class=\"hljs-attr\">int:<\/span>\n             <span class=\"hljs-attr\">accessMode:<\/span> <span class=\"hljs-string\">ReadOnly<\/span>\n             <span class=\"hljs-attr\">defaultValue:<\/span> <span class=\"hljs-number\">0<\/span>\n             <span class=\"hljs-attr\">maximum:<\/span> <span class=\"hljs-number\">100<\/span>\n             <span class=\"hljs-attr\">minimum:<\/span> <span class=\"hljs-bullet\">-<\/span>\n\n<span class=\"hljs-number\">100<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Create a Device Instance:<\/strong><\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">devices.kubeedge.io\/v1alpha1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Device<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">temperature-sensor<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">deviceModelRef:<\/span>\n       <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">temperature-sensor-model<\/span>\n     <span class=\"hljs-attr\">nodeSelector:<\/span>\n       <span class=\"hljs-attr\">node:<\/span> <span class=\"hljs-string\">edge-node<\/span>\n     <span class=\"hljs-attr\">protocol:<\/span>\n       <span class=\"hljs-attr\">protocolType:<\/span> <span class=\"hljs-string\">mqtt<\/span>\n       <span class=\"hljs-attr\">protocolConfig:<\/span>\n         <span class=\"hljs-attr\">topic:<\/span> <span class=\"hljs-string\">\/sensor\/temperature<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Security Considerations<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>TLS Communication:<\/strong><br>Ensure secure communication between cloud and edge by configuring TLS.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">edgeHub:<\/span>\n     <span class=\"hljs-attr\">enable:<\/span> <span class=\"hljs-literal\">true<\/span>\n     <span class=\"hljs-attr\">websocket:<\/span>\n       <span class=\"hljs-attr\">url:<\/span> <span class=\"hljs-string\">wss:\/\/&lt;cloudcore-ip&gt;:10000\/e632aba927ea4ac2b575ec1603d56f10\/&lt;edge-node-id&gt;<\/span>\n       <span class=\"hljs-attr\">certfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.crt<\/span>\n       <span class=\"hljs-attr\">keyfile:<\/span> <span class=\"hljs-string\">\/etc\/kubeedge\/certs\/edge.key<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>RBAC Policies:<\/strong><br>Implement Role-Based Access Control (RBAC) to restrict access to resources.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">rbac.authorization.k8s.io\/v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Role<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">namespace:<\/span> <span class=\"hljs-string\">default<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">edge-node-role<\/span>\n   <span class=\"hljs-attr\">rules:<\/span>\n   <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">apiGroups:<\/span> <span class=\"hljs-string\">&#91;\"\"]<\/span>\n     <span class=\"hljs-attr\">resources:<\/span> <span class=\"hljs-string\">&#91;\"pods\",<\/span> <span class=\"hljs-string\">\"services\"<\/span><span class=\"hljs-string\">]<\/span>\n     <span class=\"hljs-attr\">verbs:<\/span> <span class=\"hljs-string\">&#91;\"get\",<\/span> <span class=\"hljs-string\">\"list\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"watch\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"create\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"update\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"patch\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"delete\"<\/span><span class=\"hljs-string\">]<\/span>\n\n   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">rbac.authorization.k8s.io\/v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">RoleBinding<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">edge-node-rolebinding<\/span>\n     <span class=\"hljs-attr\">namespace:<\/span> <span class=\"hljs-string\">default<\/span>\n   <span class=\"hljs-attr\">subjects:<\/span>\n   <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">User<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">edge-user<\/span>\n     <span class=\"hljs-attr\">apiGroup:<\/span> <span class=\"hljs-string\">rbac.authorization.k8s.io<\/span>\n   <span class=\"hljs-attr\">roleRef:<\/span>\n     <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Role<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">edge-node-role<\/span>\n     <span class=\"hljs-attr\">apiGroup:<\/span> <span class=\"hljs-string\">rbac.authorization.k8s.io<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Edge Autonomy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One of the key benefits of KubeEdge is its ability to ensure edge autonomy. This means that edge nodes can continue to operate and manage workloads even when disconnected from the cloud.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Local Persistence:<\/strong><br>Use local storage to ensure data persistence on edge nodes.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">PersistentVolume<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">local-pv<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">capacity:<\/span>\n       <span class=\"hljs-attr\">storage:<\/span> <span class=\"hljs-string\">10Gi<\/span>\n     <span class=\"hljs-attr\">accessModes:<\/span>\n       <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">ReadWriteOnce<\/span>\n     <span class=\"hljs-attr\">storageClassName:<\/span> <span class=\"hljs-string\">local-storage<\/span>\n     <span class=\"hljs-attr\">local:<\/span>\n       <span class=\"hljs-attr\">path:<\/span> <span class=\"hljs-string\">\/mnt\/disks\/ssd1<\/span>\n     <span class=\"hljs-attr\">nodeAffinity:<\/span>\n       <span class=\"hljs-attr\">required:<\/span>\n         <span class=\"hljs-attr\">nodeSelectorTerms:<\/span>\n           <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">matchExpressions:<\/span>\n               <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">key:<\/span> <span class=\"hljs-string\">kubernetes.io\/hostname<\/span>\n                 <span class=\"hljs-attr\">operator:<\/span> <span class=\"hljs-string\">In<\/span>\n                 <span class=\"hljs-attr\">values:<\/span>\n                   <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">edge-node<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Edge Application Health Checks:<\/strong><br>Implement health checks to ensure applications are running as expected.<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml\">   <span class=\"hljs-attr\">apiVersion:<\/span> <span class=\"hljs-string\">apps\/v1<\/span>\n   <span class=\"hljs-attr\">kind:<\/span> <span class=\"hljs-string\">Deployment<\/span>\n   <span class=\"hljs-attr\">metadata:<\/span>\n     <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx-deployment<\/span>\n   <span class=\"hljs-attr\">spec:<\/span>\n     <span class=\"hljs-attr\">replicas:<\/span> <span class=\"hljs-number\">1<\/span>\n     <span class=\"hljs-attr\">selector:<\/span>\n       <span class=\"hljs-attr\">matchLabels:<\/span>\n         <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n     <span class=\"hljs-attr\">template:<\/span>\n       <span class=\"hljs-attr\">metadata:<\/span>\n         <span class=\"hljs-attr\">labels:<\/span>\n           <span class=\"hljs-attr\">app:<\/span> <span class=\"hljs-string\">nginx<\/span>\n       <span class=\"hljs-attr\">spec:<\/span>\n         <span class=\"hljs-attr\">containers:<\/span>\n         <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">nginx<\/span>\n           <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">nginx:1.14.2<\/span>\n           <span class=\"hljs-attr\">ports:<\/span>\n           <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-attr\">containerPort:<\/span> <span class=\"hljs-number\">80<\/span>\n           <span class=\"hljs-attr\">livenessProbe:<\/span>\n             <span class=\"hljs-attr\">httpGet:<\/span>\n               <span class=\"hljs-attr\">path:<\/span> <span class=\"hljs-string\">\/<\/span>\n               <span class=\"hljs-attr\">port:<\/span> <span class=\"hljs-number\">80<\/span>\n             <span class=\"hljs-attr\">initialDelaySeconds:<\/span> <span class=\"hljs-number\">30<\/span>\n             <span class=\"hljs-attr\">periodSeconds:<\/span> <span class=\"hljs-number\">10<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">KubeEdge empowers organizations to leverage the full potential of edge computing by extending Kubernetes capabilities to edge environments. By following this tutorial, you should now have a solid understanding of how to set up and use KubeEdge for deploying and managing applications at the edge. The flexibility, autonomy, and robust device management offered by KubeEdge make it an ideal solution for edge computing scenarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In recent years, edge computing has gained significant traction as organizations strive to bring data processing closer to the source of data generation. This shift is driven by the need for low latency, reduced bandwidth usage, enhanced security, and increased reliability. Kubernetes, the de facto standard for container orchestration, extends its capabilities to the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-2032","post","type-post","status-publish","format-standard","category-containers","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Use Kubernetes with KubeEdge for Edge Computing<\/title>\n<meta name=\"description\" content=\"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Kubernetes with KubeEdge for Edge Computing\" \/>\n<meta property=\"og:description\" content=\"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-02T13:56:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-02T13:57:22+00:00\" \/>\n<meta name=\"author\" content=\"w3compadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"w3compadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/\"},\"author\":{\"name\":\"w3compadmin\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"headline\":\"How to Use Kubernetes with KubeEdge for Edge Computing\",\"datePublished\":\"2024-07-02T13:56:59+00:00\",\"dateModified\":\"2024-07-02T13:57:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/\"},\"wordCount\":631,\"articleSection\":[\"Containers\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/\",\"name\":\"How to Use Kubernetes with KubeEdge for Edge Computing\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\"},\"datePublished\":\"2024-07-02T13:56:59+00:00\",\"dateModified\":\"2024-07-02T13:57:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"description\":\"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Articles Home\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Containers\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/containers\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Use Kubernetes with KubeEdge for Edge Computing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\",\"name\":\"Developer Articles Hub\",\"description\":\"\",\"alternateName\":\"Developer Articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\",\"name\":\"w3compadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"contentUrl\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"caption\":\"w3compadmin\"},\"sameAs\":[\"http:\\\/\\\/w3computing.com\\\/articles\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use Kubernetes with KubeEdge for Edge Computing","description":"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Kubernetes with KubeEdge for Edge Computing","og_description":"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.","og_url":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/","article_published_time":"2024-07-02T13:56:59+00:00","article_modified_time":"2024-07-02T13:57:22+00:00","author":"w3compadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"w3compadmin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/#article","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/"},"author":{"name":"w3compadmin","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"headline":"How to Use Kubernetes with KubeEdge for Edge Computing","datePublished":"2024-07-02T13:56:59+00:00","dateModified":"2024-07-02T13:57:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/"},"wordCount":631,"articleSection":["Containers"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/","url":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/","name":"How to Use Kubernetes with KubeEdge for Edge Computing","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/#website"},"datePublished":"2024-07-02T13:56:59+00:00","dateModified":"2024-07-02T13:57:22+00:00","author":{"@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"description":"Kubernetes, the de facto standard for container orchestration, extends its capabilities to the edge with KubeEdge.","breadcrumb":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.w3computing.com\/articles\/how-to-use-kubernetes-with-kubeedge-for-edge-computing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Articles Home","item":"https:\/\/www.w3computing.com\/articles\/"},{"@type":"ListItem","position":2,"name":"Containers","item":"https:\/\/www.w3computing.com\/articles\/containers\/"},{"@type":"ListItem","position":3,"name":"How to Use Kubernetes with KubeEdge for Edge Computing"}]},{"@type":"WebSite","@id":"https:\/\/www.w3computing.com\/articles\/#website","url":"https:\/\/www.w3computing.com\/articles\/","name":"Developer Articles Hub","description":"","alternateName":"Developer Articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.w3computing.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561","name":"w3compadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","url":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","contentUrl":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","caption":"w3compadmin"},"sameAs":["http:\/\/w3computing.com\/articles"]}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"w3compadmin","author_link":"https:\/\/www.w3computing.com\/articles\/author\/w3compadmin\/"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/comments?post=2032"}],"version-history":[{"count":1,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2032\/revisions"}],"predecessor-version":[{"id":2033,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/2032\/revisions\/2033"}],"wp:attachment":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/media?parent=2032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/categories?post=2032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/tags?post=2032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}