{"id":9615,"date":"2025-12-04T14:25:21","date_gmt":"2025-12-04T08:55:21","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=9615"},"modified":"2025-12-04T14:26:19","modified_gmt":"2025-12-04T08:56:19","slug":"how-to-install-kubernetes-cluster-using-k3s-on-centos-7","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/how-to-install-kubernetes-cluster-using-k3s-on-centos-7\/","title":{"rendered":"How to Install Kubernetes Cluster Using K3s on Centos 7"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, we\u2019ll set up a lightweight Kubernetes cluster using <strong>K3s<\/strong> on <strong>CentOS 7<\/strong>. K3s is a fast and easy way to run Kubernetes without heavy resource usage. With one master and multiple worker nodes, you can build a clean, efficient, and production-ready cluster in just a few steps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Lab Details<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>VM1:<\/strong> k8s-master \u2014 <code>&lt;public-ip&gt;<\/code><\/li>\n\n\n\n<li><strong>VM2:<\/strong> worker-node1 \u2014 <code>&lt;public-ip&gt;<\/code><\/li>\n\n\n\n<li><strong>VM3:<\/strong> worker-node2 \u2014 <code>&lt;public-ip&gt;<\/code><\/li>\n\n\n\n<li><strong>VM4:<\/strong> worker-node3 \u2014 <code>&lt;public-ip&gt;<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Set Hostname on Each Node<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Set the hostname on every server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Master Node:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo hostnamectl set-hostname k8s-master &amp;&amp; exec bash<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Worker Nodes<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo hostnamectl set-hostname worker-node1 &amp;&amp; exec bash<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo hostnamectl set-hostname worker-node2 &amp;&amp; exec bash<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo hostnamectl set-hostname worker-node3 &amp;&amp; exec bash<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update \/etc\/hosts on all nodes<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the public IPs and hostnames of all nodes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;public-ip&gt;  k8s-master\n&lt;public-ip&gt;  worker-node1\n&lt;public-ip&gt;  worker-node2\n&lt;public-ip&gt;  worker-node3<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Install Required Tools<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install basic utilities on all nodes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo yum install curl wget -y<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Install K3s on Master Node:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run the following command <strong>only on the master<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$curl -sfL https:\/\/get.k3s.io | sh -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check whether K3s is running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo systemctl status k3s<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Configure kubectl on Master Node<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$mkdir ~\/.kube\n$sudo cp \/etc\/rancher\/k3s\/k3s.yaml ~\/.kube\/config\n$sudo chown $USER ~\/.kube\/config\n$sudo chmod 600 ~\/.kube\/config\n$export KUBECONFIG=~\/.kube\/config<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify the cluster:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$kubectl get nodes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see the master node in <strong>Ready<\/strong> state.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Join Worker Nodes to the Cluster<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Get the K3s token from master:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$sudo cat \/var\/lib\/rancher\/k3s\/server\/node-token<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the token.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Run on all worker nodes:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$curl -sfL https:\/\/get.k3s.io | K3S_URL=https:\/\/k8s-master:6443 K3S_TOKEN=&lt;TOKEN&gt; sh -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(Replace <strong>&lt;TOKEN&gt;<\/strong> with the actual key.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Add master host entry (on workers):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Master-IP&gt;  k8s-master<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verify from master:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get nodes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">All nodes should appear in <strong>Ready<\/strong> status.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Final Verification:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$kubectl get pods -A\n$kubectl get nodes\n$kubectl cluster-info<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Output:<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If all components (CoreDNS, metrics-server, node agents) are running, your K3s Kubernetes cluster is successfully set up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With just a few simple steps, K3s lets you build a clean, lightweight, and fully functional Kubernetes cluster on CentOS 7. It\u2019s fast to install, easy to manage, and perfect for development, testing, and small production setups.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: In this guide, we\u2019ll set up a lightweight Kubernetes cluster using K3s on CentOS 7. K3s is a fast [&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":false,"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],"tags":[],"class_list":["post-9615","post","type-post","status-publish","format-standard","hentry","category-containers-kubernetes","psol-cat-containers-kubernetes"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-2v5","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9615","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=9615"}],"version-history":[{"count":11,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9615\/revisions"}],"predecessor-version":[{"id":9633,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9615\/revisions\/9633"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=9615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=9615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=9615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}