K8S 环境准备(kubeadm 方式)

目录:

  1. 准备克隆模板
  2. 单控制平面集群

准备基础环境

  • 操作系统:Ubuntu 20.04
  • 容器运行时的引擎: Docker 19.03ce
  • Kubernetes:v1.19
  1. 主机时间同步

    sudo systemctl start chronyd
    sudo systemctl enable chronyd
    # 查看服务状态
    sudo systemctl status chronyd
    
  2. 防火墙

    sudo ufw disable && sudo ufw status
    
  3. 禁用Swap

    # 临时禁用
    sudo swapoff -a
    # 永久禁用,将/swapfile 开头的一行进行注释
    sudo vi /etc/fstab
    

配置容器运行引擎

  1. 更新apt索引,并安装必要的包
    sudo apt apt update
    sudo apt install apt-transport-https ca-certificates \
    curl gnupg-agent software-properties-common
    
  2. 添加官方Gpg证书,用来验证包
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  3. 为apt添加稳定版本的docker-ce仓库
    sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable"
    
  4. 更新索引后安装docker-ce
    sudo apt update
    # 查看可用的docker-ce版本
    sudo apt-cache madison docker-ce
    # 安装指定版本
    sudo apt install docker-ce=5:19.03.15~3-0~ubuntu-focal
    sudo apt install docker-ce-cli=5:19.03.15~3-0~ubuntu-focal
    sudo apt install containerd.io
    
  5. 配置Docker。编辑配置文件/etc/docker/daemon.json ,加入以下配置。(使用systemd而不是cgroupfs)
    {
    	"exec-opts": ["native.cgroupdriver=systemd"],
    	"log-driver": "json-file",
    	"log-opts": {
    		"max-size": "100m"
    		},
    	"storage-driver": "overlay2"
    }
    
  6. 启动Docker服务,并设置服务可随系统引导启动。
    sudo systemctl daemon-reload
    sudo systemctl start docker
    sudo systemctl enable docker
    

安装kubectl、kubelet和kubeadm

注意要确保组件的版本一致

  1. 更新apt索引
    sudo apt update
    
  2. 添加官方密钥
    sudo curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    
  3. 在配置文件/etc/apt/sources.list.d/kubernetes.list 中添加一下内容, 为apt添加kubernetes程序包仓库。
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    
  4. 更新apt索引安装程序包
    sudo apt update
    sudo apt install -y kubelet=1.19.0-00 kubeadm=1.19.0-00 kubectl=1.19.0-00
    
  5. Master网卡信息

    因为方便测试使用的是ubuntu20.04的桌面版
    在这里插入图片描述

  6. 配置静态解析 /etc/resolve.conf, 这里的域名可以根据情况修改
    # 编辑/etc/hosts
    10.0.2.14	k8s-master-01.ilinux.io k8s-master01 k8s-api.ilinux.io
    10.0.2.15	k8s-node01.ilinux.io k8s-node01
    10.0.2.16	k8s-node02.ilinux.io k8s-node02
    10.0.2.17	k8s-node03.ilinux.io k8s-node03
    
    如图
    此时可以准备3台node节点, 注意clone时,网卡的mac地址要不同。

回到目录

单控制平面集群

  1. 初始化

    sudo kubeadm init \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.19.0 \
    --control-plane-endpoint k8s-api.ilinux.io \
    --apiserver-advertise-address 10.0.2.14 \
    --pod-network-cidr 10.244.0.0/16 \
    --token-ttl 0
    

    初始化完成时,会给出master 的token, 请copy下来,以便node加入集群

  2. 配置kubectl

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    # 接下来可以通过kubectl get nodes 来查看nodes 状态。
    
  3. 部署Flannel插件

    当flannel的pod 状态为running时,此时node节点的状态会转为ready。

    sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  4. 将node加入k8s集群, 将之前copy的token在node上执行

    kubeadm join k8s-api.ilinux.io:6443 --token 0by003.s88ybg64jrg9txcs \
      --discovery-token-ca-cert-hash sha256:7edd96f1e1a0a88cb99285831c8aad36c20c65f307b4c1c5c790a1ab447e9f0e
    
  5. 此时完成的集群状态
    在这里插入图片描述

回到目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值