1"use strict";(self.webpackChunktigera_docs=self.webpackChunktigera_docs||[]).push([["2516"],{37647:function(e,n,i){i.r(n),i.d(n,{frontMatter:()=>o,toc:()=>a,default:()=>h,metadata:()=>t,assets:()=>c,contentTitle:()=>l});var t=JSON.parse('{"id":"getting-started/kubernetes/windows-calico/rancher","title":"Calico for Windows on a Rancher Kubernetes Engine cluster","description":"Install Calico for Windows on a Rancher RKE cluster.","source":"@site/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/rancher.mdx","sourceDirName":"getting-started/kubernetes/windows-calico","slug":"/getting-started/kubernetes/windows-calico/rancher","permalink":"/calico/3.28/getting-started/kubernetes/windows-calico/rancher","draft":false,"unlisted":false,"editUrl":"https://github.com/tigera/docs/edit/main/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/rancher.mdx","tags":[],"version":"3.28","frontMatter":{"description":"Install Calico for Windows on a Rancher RKE cluster."},"sidebar":"calicoSidebar","previous":{"title":"Install using Operator","permalink":"/calico/3.28/getting-started/kubernetes/windows-calico/operator"},"next":{"title":"Basic policy demo","permalink":"/calico/3.28/getting-started/kubernetes/windows-calico/demo"}}'),s=i(37937),r=i(17869);let o={description:"Install Calico for Windows on a Rancher RKE cluster."},l="Calico for Windows on a Rancher Kubernetes Engine cluster",c={},a=[{value:"Big picture",id:"big-picture",level:2},{value:"Value",id:"value",level:2},{value:"Before you begin",id:"before-you-begin",level:2},{value:"How to",id:"how-to",level:2},{value:"Next steps",id:"next-steps",level:2}];function d(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"calico-for-windows-on-a-rancher-kubernetes-engine-cluster",children:"Calico for Windows on a Rancher Kubernetes Engine cluster"})}),"\n",(0,s.jsx)(n.h2,{id:"big-picture",children:"Big picture"}),"\n",(0,s.jsx)(n.p,{children:"Install Calico for Windows on a Rancher Kubernetes Engine (RKE) cluster."}),"\n",(0,s.jsx)(n.h2,{id:"value",children:"Value"}),"\n",(0,s.jsx)(n.p,{children:"Run Linux and Windows workloads on a RKE cluster with Calico."}),"\n",(0,s.jsx)(n.h2,{id:"before-you-begin",children:"Before you begin"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Supported"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"RKE Kubernetes 1.20, 1.19, or 1.18"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Supported networking"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"BGP with no encapsulation"}),"\n",(0,s.jsx)(n.li,{children:"VXLAN"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Required"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["An RKE cluster provisioned with ",(0,s.jsx)(n.a,{href:"https://rancher.com/docs/rke/latest/en/config-options/add-ons/network-plugins#disabling-deployment-of-a-network-plug-in",children:"no network plugin"}),"\nbut which otherwise meets the Calico for Windows Kubernetes ",(0,s.jsx)(n.a,{href:"/calico/3.28/getting-started/kubernetes/windows-calico/requirements",children:"cluster requirements"}),". This guide was tested with RKE v1.18.9."]}),"\n",(0,s.jsxs)(n.li,{children:["One or more Windows nodes that meet the ",(0,s.jsx)(n.a,{href:"/calico/3.28/getting-started/kubernetes/windows-calico/requirements",children:"requirements"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"how-to",children:"How to"}),"\n",(0,s.jsx)(n.p,{children:"The following steps will outline the installation of Calico networking on the RKE cluster, then the installation of Calico for Windows on the Windows nodes."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Install the Tigera Operator and custom resource definitions."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.5/manifests/tigera-operator.yaml\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["Due to the large size of the CRD bundle, ",(0,s.jsx)(n.code,{children:"kubectl apply"})," might exceed request limits. Instead, use ",(0,s.jsx)(n.code,{children:"kubectl create"})," or ",(0,s.jsx)(n.code,{children:"kubectl replace"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Download the necessary Installation custom resources."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.5/manifests/custom-resources.yaml\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Update the ",(0,s.jsx)(n.code,{children:"calicoNetwork"})," options, ensuring that the correct pod CIDR is set. (Rancher uses ",(0,s.jsx)(n.code,{children:"10.42.0.0/16"})," by default.)\nBelow are sample installations for VXLAN and BGP networking using the default Rancher pod CIDR:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"VXLAN"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"apiVersion: operator.tigera.io/v1\nkind: Installation\nmetadata:\n name: default\nspec:\n # Configures Calico networking.\n calicoNetwork:\n bgp: Disabled\n ipPools:\n - blockSize: 26\n cidr: 10.42.0.0/16\n encapsulation: VXLAN\n natOutgoing: Enabled\n nodeSelector: all()\n"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"BGP"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"apiVersion: operator.tigera.io/v1\nkind: Installation\nmetadata:\n name: default\nspec:\n # Configures Calico networking.\n calicoNetwork:\n ipPools:\n - blockSize: 26\n cidr: 10.42.0.0/16\n encapsulation: None\n natOutgoing: Enabled\n nodeSelector: all()\n"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["For more information on configuration options available in this manifest, see ",(0,s.jsx)(n.a,{href:"/calico/3.28/reference/installation/api",children:"the installation reference"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Apply the updated custom resources:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"kubectl create -f custom-resources.yaml\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Configure strict affinity:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'kubectl patch ipamconfigurations default --type merge --patch=\'{"spec": {"strictAffinity": true}}\'\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Finally, install Calico for Windows. For an operator installation, follow the ",(0,s.jsx)(n.a,{href:"/calico/3.28/getting-started/kubernetes/windows-calico/operator",children:"operator guide"}),'.\nFor VXLAN clusters, follow the instructions under the "Kubernetes VXLAN" tab. For BGP cluster
1s, follow the instructions under the "Kubernetes BGP" tab.']}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["For Rancher default values for service CIDR and DNS cluster IP, see the ",(0,s.jsx)(n.a,{href:"https://rancher.com/docs/rke/latest/en/config-options/services/#kubernetes-api-server-options",children:"Rancher kube-api service options"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Check the status of the nodes with ",(0,s.jsx)(n.code,{children:"kubectl get nodes"}),". If you see that the Windows node has the status ",(0,s.jsx)(n.code,{children:"Ready"}),", then you have a Calico for Windows on RKE cluster ready for Linux and Windows workloads!"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"next-steps",children:"Next steps"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/calico/3.28/getting-started/kubernetes/windows-calico/demo",children:"Try the basic policy demo"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/calico/3.28/network-policy/get-started/calico-policy/calico-network-policy",children:"Secure pods with Calico network policy"})}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},17869:function(e,n,i){i.d(n,{R:()=>o,x:()=>l});var t=i(82645);let s={},r=t.createContext(s);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},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.