PageSourceSearch

https://www.vcluster.com/docs/assets/js/6d3943cb.a554ba56.js

js vcluster.com collected 2026-09-24 19:06:02 UTC 7,820 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkvcluster_docs=self.webpackChunkvcluster_docs||[]).push([["1030"],{6790(e,s,n){n.d(s,{Ay:()=>l,RM:()=>d});var t=n(74848),r=n(28453),i=n(95310);let d=[];function o(e){let s={admonition:"admonition",...(0,r.R)(),...e.components};return(0,t.jsxs)(s.admonition,{title:"Supported Configurations",type:"info",children:[(e.hostNodes||e.privateNodes)&&(0,t.jsxs)("div",{children:["Running the control plane as a container with:",(0,t.jsxs)("ul",{className:"tenancy-list",children:[e.hostNodes&&(0,t.jsx)("li",{children:(0,t.jsx)("b",{children:(0,t.jsx)(i.A,{to:"/docs/vcluster/introduction/architecture#shared-nodes",children:"Shared Nodes"})})}),e.privateNodes&&(0,t.jsx)("li",{children:(0,t.jsx)("b",{children:(0,t.jsx)(i.A,{to:"/docs/vcluster/introduction/architecture#private-nodes",children:"Private Nodes"})})})]})]}),e.standalone&&(0,t.jsxs)("div",{children:["Running the control plane as a binary with ",(0,t.jsx)("b",{children:(0,t.jsx)(i.A,{to:"/docs/vcluster/deploy/control-plane/binary",children:"vCluster Standalone"})}),". When scaling with additional worker nodes, they are joined as ",(0,t.jsx)("b",{children:(0,t.jsx)(i.A,{to:"/docs/vcluster/introduction/architecture#private-nodes",children:"private nodes"})}),"."]})]})}function l(e={}){let{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},83285(e,s,n){n.r(s),n.d(s,{metadata:()=>t,default:()=>h,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var t=JSON.parse('{"id":"deploy/worker-nodes/private-nodes/node-requirements","title":"Node Requirements","description":"Private node requirements","source":"@site/vcluster_versioned_docs/version-0.36.0/deploy/worker-nodes/private-nodes/node-requirements.mdx","sourceDirName":"deploy/worker-nodes/private-nodes","slug":"/deploy/worker-nodes/private-nodes/node-requirements","permalink":"/docs/vcluster/0.36.0/deploy/worker-nodes/private-nodes/node-requirements","draft":false,"unlisted":false,"editUrl":"https://github.com/loft-sh/vcluster-docs/edit/main/vcluster_versioned_docs/version-0.36.0/deploy/worker-nodes/private-nodes/node-requirements.mdx","tags":[],"version":"0.36.0","sidebarPosition":4,"frontMatter":{"title":"Node Requirements","sidebar_label":"Node Requirements","sidebar_position":4,"sidebar_class_name":"private-nodes"},"sidebar":"siteSidebar","previous":{"title":"kube-ovn","permalink":"/docs/vcluster/0.36.0/deploy/worker-nodes/private-nodes/kube-ovn"},"next":{"title":"Air-gapped","permalink":"/docs/vcluster/0.36.0/deploy/worker-nodes/private-nodes/security/air-gapped"}}'),r=n(74848),i=n(28453),d=n(6790);let o={title:"Node Requirements",sidebar_label:"Node Requirements",sidebar_position:4,sidebar_class_name:"private-nodes"},l,c={},a=[...d.RM,{value:"Private node requirements",id:"private-node-requirements",level:2},{value:"Host requirements",id:"host-requirements",level:2},{value:"Supported operating systems",id:"supported-operating-systems",level:2},{value:"CentOS Stream and Rocky support",id:"centos-stream-and-rocky-support",level:3}];function u(e){let s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.Ay,{privateNodes:"true"}),"\n",(0,r.jsx)(s.h2,{id:"private-node-requirements",children:"Private node requirements"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"vCluster CLI installed on your local machine"}),"\n",(0,r.jsx)(s.li,{children:"Access to a control plane cluster"}),"\n",(0,r.jsx)(s.li,{children:"Worker nodes"}),"\n",(0,r.jsxs)(s.li,{children:["kubeadm is used in the join script, so meeting the ",(0,r.jsx)(s.a,{href:"https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin",children:"kubeadm requirements"})," is recommended"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"host-requirements",children:"Host requirements"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Linux distribution with SystemD support (required for service management)"}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"iptables"})," binaries installed (automatically available on Ubuntu, may need manual installation on other distributions)"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"curl"})," installed"]}),"\n",(0,r.jsx)(s.li,{children:"Root user access"}),"\n"]}),"\n",(0,r.jsx)(s.admonition,{type:"info",children:(0,r.jsxs)(s.p,{children:["On RHEL 8 and 9, SELinux in enforcing mode is supported with the\n",(0,r.jsx)(s.code,{children:"vcluster-selinux"})," RPM. The Private Node join script installs it\nautomatically; no extra steps are required. See\n",(0,r.jsx)(s.a,{href:"/docs/vcluster/0.36.0/
1deploy/worker-nodes/private-nodes/security/selinux",children:"SELinux support"}),"."]})}),"\n",(0,r.jsx)(s.h2,{id:"supported-operating-systems",children:"Supported operating systems"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"OS"}),(0,r.jsx)(s.th,{children:"Version"}),(0,r.jsx)(s.th,{children:"Additional Instructions"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Ubuntu"}),(0,r.jsx)(s.td,{children:"24.04"}),(0,r.jsx)(s.td,{})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Ubuntu"}),(0,r.jsx)(s.td,{children:"22.04"}),(0,r.jsx)(s.td,{})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"RHEL (RedHat Enterprise Linux)"}),(0,r.jsx)(s.td,{children:"9"}),(0,r.jsxs)(s.td,{children:[(0,r.jsxs)(s.a,{href:"/docs/vcluster/0.36.0/deploy/worker-nodes/private-nodes/security/selinux",children:["Install ",(0,r.jsx)(s.code,{children:"vcluster-selinux"})]})," or disable SELinux"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"RHEL (RedHat Enterprise Linux)"}),(0,r.jsx)(s.td,{children:"8"}),(0,r.jsxs)(s.td,{children:[(0,r.jsxs)(s.a,{href:"/docs/vcluster/0.36.0/deploy/worker-nodes/private-nodes/security/selinux",children:["Install ",(0,r.jsx)(s.code,{children:"vcluster-selinux"})]})," and pin Kubernetes to 1.31, or disable SELinux"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"RHEL (RedHat Enterprise Linux)"}),(0,r.jsx)(s.td,{children:"10"}),(0,r.jsx)(s.td,{children:"Disable SELinux"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"CentOS Stream"}),(0,r.jsx)(s.td,{children:"9"}),(0,r.jsxs)(s.td,{children:["Disable SELinux and install ",(0,r.jsx)(s.code,{children:"iptables"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Rocky"}),(0,r.jsx)(s.td,{children:"10"}),(0,r.jsxs)(s.td,{children:["Disable SELinux and install ",(0,r.jsx)(s.code,{children:"iptables"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"Rocky"}),(0,r.jsx)(s.td,{children:"9"}),(0,r.jsxs)(s.td,{children:["Disable SELinux and install ",(0,r.jsx)(s.code,{children:"iptables"})]})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"centos-stream-and-rocky-support",children:"CentOS Stream and Rocky support"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",metastring:'title="Install iptables"',children:"yum install iptables-services\nsystemctl enable iptables\nsystemctl start iptables\n"})})]})}function h(e={}){let{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},28453(e,s,n){n.d(s,{R:()=>d,x:()=>o});var t=n(96540);let r={},i=t.createContext(r);function d(e){let s=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.