更改网络配置

vi /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses:
        - 192.168.107.128/24
  version: 2
netplan apply

Set no password for sudo

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

SSH to your virtual machine. and follow below instructure.

If you are not using Macbook, prepare a Linux OS and follow below instructure.

Install kubernetes by kubeadm

https://kubernetes.io/docs/se...

Installing runtime

https://docs.docker.com/engin...

Update the apt package index and install packages to allow apt to use a repository over HTTPS:

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

Add Docker’s official GPG key:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Add Docker repository

$ sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Update the apt package index, and install the latest version of Docker Engine and containerd, or go to the next step to install a specific version:

$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io

Install kubernetes

Installing kubeadm, kubelet and kubectl

$ cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
 deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
 EOF
$ curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
$ sudo apt-get update
$ sudo apt-get install -y kubelet=1.19.15-00 kubeadm=1.19.15-00 kubectl=1.19.15-00
$ sudo apt-mark hold kubelet kubeadm kubectl

kubeadm init

$ sudo kubeadm init \
 --image-repository registry.aliyuncs.com/google_containers \
 --apiserver-advertise-address=192.168.34.2

Copy kubeconfig

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

Untaint master

pod一般不会调度到master节点上,untaint以后,master节点可以是的pod调度到master节点

$ kubectl taint nodes --all node-role.kubernetes.io/master-

Join other node

$ kubeadm join 192.168.2.116:6443 --token oig5z4.hofxyadrsfwhzxa9 \
    --discovery-token-ca-cert-hash sha256:98172da8c89c09a176eb9e543e7decbc3a0dedf2c1a5ed16d83d16cb04e22513

Install cilium

$ helm install cilium cilium/cilium --version 1.9.1 \
    --namespace kube-system \
    --set kubeProxyReplacement=strict \
    --set k8sServiceHost=192.168.34.2 \
    --set k8sServicePort=6443

Install calico cni plugin

https://docs.projectcalico.or...

$ kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
$ kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
$ for i in `kubectl api-resources | grep true | awk '{print \$1}'`; do echo $i;kubectl get $i -n rook-ceph; done

k8s安装遇到的问题

  1. 使用1.25+的时候,会报错[kubelet-check] Initial timeout of 40s passed. 原因是1.24+的时候,k8s不在依赖docker,而是使用containerd 作为运行时,应为docker是个中间层,最终还是调用containerd 1.25 k8s安装
  2. 安装旧版k8s,ubuntu需要先加k8s源,然后apt cache查看k8s版本,进行旧版安装

mafa1993
51 声望1 粉丝