zoukankan      html  css  js  c++  java
  • 在Ubuntu 20.04上安装K8S环境

    在Ubuntu 20.04上安装K8S环境


    ifan 2020.12.28

    背景

    在实验室跟导师进行SONIC系统的研究学习,需要使用Kubernetes来管理docker容器,于是自己摸索了在Ubuntu 20.04上面安装K8S环境,记录在此,希望能帮到有需之人。

    安装步骤

    准备

    1.禁止swap分区

    安装k8s的必须环节,笔者目前还不知道原因。

    暂时禁止:

    sudo swapoff -a

    永久禁止:

    sudo vi /etc/fstab #注释掉swap一行

    2.更改net.bridge.bridge-nf-call-iptables的值为1.(Ubuntu 20.04默认为1)

    cat <<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
    

    3.安装Docker

    sudo apt update
    sudo apt install docker.io
    sudo systemctl start docker
    sudo systemctl enable docker
    

    开始安装K8S

    1.安装kubeadm kubeadm kubectl

    sudo apt-get update && 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 <<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
    

    因为笔者没有梯子,所以这里使用了阿里云的镜像源安装,也可以直接用官方源安装,在此不再提供路径。

    2.初始化

    sudo kubeadm init 
    

    初始化成功后会显示如下结果:

    其中也给出了接下来要进行的操作:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    3.添加网络插件

    CNI bridge

    mkdir -p /etc/cni/net.d
    cat >/etc/cni/net.d/10-mynet.conf <<-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 >/etc/cni/net.d/99-loopback.conf <<-EOF
    {
        "cniVersion": "0.3.0",
        "type": "loopback"
    }
    EOF
    

    flannel

    需要在kubeadm init 时设置 --pod-network-cidr=10.244.0.0/16

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
    

    weave

    sysctl net.bridge.bridge-nf-call-iptables=1
    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '
    ')"
    

    calico

    需要 kubeadm init 时设置 --pod-network-cidr=192.168.0.0/16

    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
    

    部署其他常用插件可自行百度。

    4.查看是否安装成功

    kubectl get pods -n kube-system
    

    出现如下结果,则安装成功。

    如有问题,可联系笔者: ifan0108@163.com

  • 相关阅读:
    [PHP] PHP1 与 CGI
    [PHP] Phalcon操作示范
    [Shell] swoole_timer_tick 与 crontab 实现定时任务和监控
    [PHP] Phalcon应用升级PHP7记录
    [GNU] 喝一杯咖啡, 写一写 Makefile
    [PHP] Xhprof 非侵入式使用指南
    [PHP]OOP两类写法的性能对比
    [OSI] 网络间通信流程
    [OSI] 网络7层模型的理解
    [Tools] Vim 插件管理
  • 原文地址:https://www.cnblogs.com/wwph/p/14203626.html
Copyright © 2011-2022 走看看