k8s 集群搭建

一、创建节点

  1. 修改主机名
    vim /etc/cloud/cloud.cfg
    # 修改配置
    preserve_hostname: true
  2. 修改hostname
    sudo vim /etc/hostname
  3. 修改网络
    # 打开/etc/netplan/***-config.yaml
    # 修改网络配置为:
    network:
      ethernets:
        ens33:
          addresses: [192.168.50.147/24]
          dhcp4: false
          gateway4: 192.168.50.2
          nameservers:
            addresses: [192.168.50.2]
          optional: true
      version: 2

    # 应用网络
    sudo netplan apply

     

     

  4. 修改hosts文件
    sudo vim /etc/hosts
    # 添加k8s物理集群节点
    192.168.50.147 master
    192.168.50.148 node1
    192.168.50.149 node2
  5. docker重新添加group
    # 因为修改了主机名,docker需要重新进组
    sudo usermod -aG docker $USER  

  重启机器sudo shutdown -r now

二、节点配置

  1. 创建工作目录
    mkdir ~/working
    cd ~/working
  2. 创建k8s配置文件
    •  创建k8s的管理⼯具kubeadm对应的配置⽂件,使⽤kubeadm配置⽂件,通过在配置⽂件中指定docker仓库地址,便于内⽹快速部署。
      kubeadm config print init-defaults > kubeadm.conf
  3. 修改kubeadm.conf中的imageRepository和kubernetesVersion两项
    vi kubeadm.conf
    # 改为 registry.aliyuncs.com/google_containers
    imageRepository: registry.aliyuncs.com/google_containers

    # k8s1.20以后不再默认使用docker容器,如果需要使用docker容器需要下载cri-docker,并且修改kubeadm.conf
    # cri-docker资源下载:https://github.com/Mirantis/cri-dockerd
    criSocket: unix:///var/run/cri-dockerd.sock
  4. 修改kubeadm.conf中的API服务器地址,后⾯会频繁使⽤这个地址。
    # localAPIEndpoint:
    
    localAPIEndpoint:
     advertiseAddress: 192.168.50.145
     bindPort: 6443
  5. 配置子网,用于pod之间通信
    # 修改serviceSubnet字段
    
    serviceSubnet:10.96.0.0/12

     

三、拉取K8s必备的模块镜像

  1. 查看⼀下都需要哪些镜像⽂件需要拉取
    kubeadm config images list --config kubeadm.conf
  2. 拉取镜像
    #下载全部当前版本的k8s所关联的镜像
    kubeadm config images pull --config ./kubeadm.conf
  3. 初始化kubernetes环境
    sudo kubeadm init --config ./kubeadm.conf
    或者直接使用命令
    sudo kubeadm init  --pod-network-cidr=192.10.0.0/16 --apiserver-advertise-address=10.20.7.174 --image-repository=registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock
    #查看配置
    kubeadm config print-defaults

     

  4. 系统自启动
    # 启动kubelet 设置为开机⾃启动
    $ sudo systemctl enable kubelet
    # 启动k8s服务程序
    $ sudo systemctl start kubelet

     

 四、踩坑笔记:

  1. 切记关闭swap分区。

  2. 关闭防火墙,如:iptable -F

  3.  kubelet init报错如:failed to list *v1.Service: Unauthorized,需要删除证书: sudo rm -rf /var/lib/kubelet/pki/*

  4. 一旦初始化失败,需要清除k8s缓存:

sudo su
systemctl stop kubelet.service && \
docker rm $(docker ps -qa) --force && \
rm -rf /etc/kubernetes/manifests/* && \
rm -rf /etc/kubernetes/pki/* && \
rm -rf /etc/kubernetes/*.conf && \
rm -rf /var/lib/kubelet/pki/* && \
rm -rf /var/lib/etcd \
rm -rf /var/log/pods/

 

 

posted @ 2021-01-14 01:16  醉深梦始  阅读(197)  评论(0)    收藏  举报