在openeuler2203中通过kubeadm安装单节点kubernetes(仅用于学习环境)

版本说明

第 1 列 第 2 列
操作系统版本 22.03 (LTS-SP4)
内核版本 Linux 5.10.0-278.0.0.181.oe2203sp4.x86_64
kubernetes版本 v1.20.2

使用的是官方的yum源提供的kubeadm进行的安装。此次安装的kubernetes为单节点,仅供快速的学习研究使用。

  1. 安装基础的软件包
sudo dnf install tar iptables chrony unzip iptables  kubernetes-kubeadm docker vim kubernetes-client  ipset ipvsadm conntrack-tools socat ebtables nftables kubernetes-kubelet -y
  1. 设置时区
    timedatectl set-timezone Asia/Shanghai

  2. 将hostname添加到hosts文件中
    vim /etc/hosts

    image

  3. 启动kubelet(操作了就可以,只有使用了kubeadm初始化后kubelet才能正常启动)
    systemctl start kubelet
    systemctl enable kubelet

  4. 使用kubeadm初始化节点(10.11.84.0为主机ip 10.244.0.0为pod的ip段,默认使用了阿里的镜像源去替代了google的镜像源)
    kubeadm init --image-repository ``registry.cn-hangzhou.aliyuncs.com/google_containers`` --apiserver-advertise-address=10.11.84.0 --pod-network-cidr=10.244.0.0/16

  5. 配置一些配置文件,配置后kubectl才可以正常的执行出结果
    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config

  6. 查看当前安装的节点信息
    kubectl get nodes -o wide

    image
    上面节点已经可以正常出来了但是仍旧处于notready的状态,主要是因为还未安装网络插件。

  7. 安装网络插件,本次使用flannel。
    kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

  8. 安装cni,也是网络插件的一部分
    sudo dnf install -y containernetworking-plugins

  9. 对cni二进制文件进行软链接,以让flannel容器可以读取到这些二进制文件
    sudo ln -s /usr/libexec/cni/* /opt/cni/bin

  10. 再次查看节点状态已经处于ready状态

    image

  11. 允许这个单节点的master进行容器调度,k8s-test1为节点名称
    kubectl taint nodes k8s-test1 ``node-role.kubernetes.io/master-
    下图的第一条命令是查看是否允许进行节点的调度,nochedule为不允许调度,通过命令修改后再次查看是可以进行调度的。