kubeadm,官方快速搭建K8S的工具。

  1. 节点安装docker和kubeadm
  2. 部署k8s Master
  3. 容器网络插件
  4. 部署K8S Node,将节点加入K8S集群中
  5. 部署Dashboard Web可视化页面

步骤

  1. 开启三个虚拟机(CPU 2个 内存4G)。配置全局网卡。每个虚拟机有两个网络,一个是新建的全局网卡,一个是主机网络。

image.pngimage.pngimage.png

  1. 批量 - 关闭防火墙 和 linux安全策略

    1. # 关闭防火墙
    2. systemctl stop firewalld
    3. systemctl disable firewalld
    4. # 关闭linux安全策略
    5. sed -i 's/enforcing/disabled/' /etc/selinux/config
    6. setenforce 0
    7. # 关闭内存交换
    8. swapoff -a #临时
    9. sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
  2. 修改主机名(三台机器名改为,k8s-node1,k8s-node3,k8s-node3)

hostnamectl set-hostname 名字

  1. 服务器的hosts文件加入ip绑定域名(注意ip为默认网卡的ip,即全局网卡的ip enp3s0 )

10.0.2.15 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3

  1. 监控流量,不知道啥用

    1. cat > /etc/sysctl.d/k8s.conf << EOF
    2. net.bridge.bridge-nf-call-ip6tables = 1
    3. net.bridge.bridge-nf-call-iptables = 1
    4. EOF
  2. 安装docker ```bash

    清除旧文件

    sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

安装基础环境

sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

配置docker的仓库

sudo yum-config-manager \ —add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

安装docker

sudo yum install -y docker-ce docker-ce-di containerd.io

配置镜像加速

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [“https://xffjio8i.mirror.aliyuncs.com“] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

设置docker开机启动

systemctl enable docker

配置镜像下载地址

cat < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF ```

  1. 安装k8s

yum install -y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3
#开机启动
systemctl enable kubelet && systemctl start kubelet

  1. 初始Master节点

    作为master的机器,先上传并执行master_images.sh文件。(注意先chmod 700 master_images.sh后运行 ./master_images.sh)
    master_images.sh
    再执行(注意:10.0.2.15为主机的内部网卡ip)
    kubeadm init —apiserver-advertise-address=10.0.2.15 —image-repository registry.cn-hangzhou.aliyuncs.com/google_containers —kubernetes-version v1.17.3 —service-cidr=10.96.0.0/16 —pod-network-cidr=10.244.0.0/16
    执行完成会有打印slave加入master的命令。先复制保存。(过期则百度kubeadm token过期)
    如:kubeadm join 10.0.2.15:6443 —token qets1u.7oz8rujdqb1xh1ot \
    —discovery-token-ca-cert-hash sha256:71f6085251543bbb933143892a7179e89d098253fbc33e159649baf8742617c5

  2. 安装网卡

上传并执行kubectl apply -f kube-flannel.yml (卸载则可以执行kubectl delete -f kube-flannel.yml)
kube-flannel.yml
注意:
上述命令报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决:
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> /etc/profile
source /etc/profile
测试网卡是否装完:
kubectl get pods —all-namespaces 【kube-flannel-ds-amd64-h8jnk的READY是1/1】

  1. slave执行第8步Maser安装后得到的加入命令。

master机执行kubectl get nodes得到加入的从机。
kubectl get pod -n kube-system -o wide 等待看到从机都是Running状态即可

  1. xx