丢了翅膀的鱼 發表於 2020-12-28 21:05:00

在Ubuntu 20.04上安装K8S环境

<h1 id="在ubuntu-2004上安装k8s环境">在Ubuntu 20.04上安装K8S环境</h1>
<hr>
<p><u>ifan 2020.12.28</u></p>
<h2 id="背景">背景</h2>
<p>在实验室跟导师进行SONIC系统的研究学习,需要使用Kubernetes来管理docker容器,于是自己摸索了在Ubuntu 20.04上面安装K8S环境,记录在此,希望能帮到有需之人。</p>
<h2 id="安装步骤">安装步骤</h2>
<h3 id="准备">准备</h3>
<h4 id="1禁止swap分区">1.禁止swap分区</h4>
<p>安装k8s的必须环节,笔者目前还不知道原因。</p>
<p>暂时禁止:</p>
<p><code>sudo swapoff -a</code></p>
<p>永久禁止:</p>
<p><code>sudo vi /etc/fstab#注释掉swap一行</code></p>
<h4 id="2更改netbridgebridge-nf-call-iptables的值为1ubuntu-2004默认为1">2.更改net.bridge.bridge-nf-call-iptables的值为1.(Ubuntu 20.04默认为1)</h4>
<pre><code class="language-text">cat &lt;&lt;EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
</code></pre>
<h4 id="3安装docker">3.安装Docker</h4>
<pre><code class="language-text">sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
</code></pre>
<h3 id="开始安装k8s">开始安装K8S</h3>
<h4 id="1安装kubeadm-kubeadm-kubectl">1.安装kubeadm kubeadm kubectl</h4>
<pre><code class="language-text">sudo apt-get update &amp;&amp; sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list &lt;&lt;EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
</code></pre>
<p>因为笔者没有梯子,所以这里使用了阿里云的镜像源安装,也可以直接用官方源安装,在此不再提供路径。</p>
<h4 id="2初始化">2.初始化</h4>
<pre><code class="language-text">sudo kubeadm init
</code></pre>
<p>初始化成功后会显示如下结果:</p>
<p><img src="https://img2020.cnblogs.com/blog/2143919/202012/2143919-20201228210418117-405413764.png" alt="" loading="lazy"></p>
<p>其中也给出了接下来要进行的操作:</p>
<pre><code class="language-text">mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
</code></pre>
<h4 id="3添加网络插件">3.添加网络插件</h4>
<p><strong>CNI bridge</strong></p>
<pre><code>mkdir -p /etc/cni/net.d
cat &gt;/etc/cni/net.d/10-mynet.conf &lt;&lt;-EOF
{
    "cniVersion": "0.3.0",
    "name": "mynet",
    "type": "bridge",
    "bridge": "cni0",
    "isGateway": true,
    "ipMasq": true,
    "ipam": {
      "type": "host-local",
      "subnet": "10.244.0.0/16",
      "routes": [
            {"dst": "0.0.0.0/0"}
      ]
    }
}
EOF
cat &gt;/etc/cni/net.d/99-loopback.conf &lt;&lt;-EOF
{
    "cniVersion": "0.3.0",
    "type": "loopback"
}
EOF
</code></pre>
<p><strong>flannel</strong></p>
<p>需要在kubeadm init 时设置 --pod-network-cidr=10.244.0.0/16</p>
<pre><code>kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
</code></pre>
<p><strong>weave</strong></p>
<pre><code>sysctl net.bridge.bridge-nf-call-iptables=1
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
</code></pre>
<p><strong>calico</strong></p>
<p>需要 kubeadm init 时设置 --pod-network-cidr=192.168.0.0/16</p>
<pre><code>kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/install
</code></pre>
<p>部署其他常用插件可自行百度。</p>
<h4 id="4查看是否安装成功">4.查看是否安装成功</h4>
<pre><code>kubectl get pods -n kube-system
</code></pre>
<p>出现如下结果,则安装成功。</p>
<p><img src="https://img2020.cnblogs.com/blog/2143919/202012/2143919-20201228210431633-385566910.png" alt="" loading="lazy"></p>
<p>如有问题,可联系笔者: ifan0108@163.com</p><br><br>
来源:https://www.cnblogs.com/wwph/p/14203626.html
頁: [1]
查看完整版本: 在Ubuntu 20.04上安装K8S环境