美文网首页Kubernetes
基于阿里云快速搭建 k8s 社区版集群

基于阿里云快速搭建 k8s 社区版集群

作者: 南国的小狼 | 来源:发表于2020-03-30 22:55 被阅读0次

机器信息

vpc ip 公网 ip 密码
k8s-node-01 192.168.1.114 xxx.xxx.xxx xxx
k8s-node-02 192.168.1.115 xxx.xxx.xxx xxx
k8s-node-03 192.168.1.116 xxx.xxx.xxx xxx

所有节点环境准备

1. 系统环境

  1. 关闭防火墙

    # 关闭防火墙
    systemctl disable firewalld && systemctl stop firewalld
    
  2. 安装必要组件包,方便下载和调试等(官网非必须)

    yum install -y wget vim net-tools ntpdate
    
  3. 关闭网络组件(官网非必须)

    systemctl stop NetworkManager && systemctl disable NetworkManager
    
  4. 关闭 SELinux

    setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
  5. 关闭 swap

    swapoff -a && sed -i 's/.*swap.*/#$/' /etc/fstab
    
  6. 时钟同步(官网非必须)

    # 注意,下面的 10.100.60.6 需要替换成本机 ip 地址(hostname -i)
    echo '*/10 * * * * /usr/sbin/ntpdate -s 10.100.60.6 >/dev/null 2>&1 && /sbin/clock -w' > /var/spool/cron/root
    
    service crond restart
    
    ntpdate -s $(hostname -i)
    
  7. 互相解析(官网非必须)

    cat >> /etc/hosts << EOF
    192.168.1.114 master
    192.168.1.115 node01
    192.168.1.116 node02
    EOF
    
  8. master 节点对 node 节点 ssh 互信(官网非必须)

    # 生成本机 ssh key,一路按 Enter 键即可
    ssh-keygen
    
    # 这一步要在第 7 步执行的基础上,不然无法识别 node01;需要输入 node01 密码
    ssh-copy-id node01
    
    # 这一步要在第 7 步执行的基础上,不然无法识别 node01;需要输入 node02 密码
    ssh-copy-id node02
    
  9. 配置网络转发参数

    cat <<EOF > /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    
    # 让配置生效
    sysctl --system
    
  10. 配置 Docker yum 源

    cat >> /etc/yum.repos.d/docker.repo <<EOF
    [docker-repo]
    name=Docker Repository
    babseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7
    enabled=1
    gpgcheck=0
    EOF
    
  11. 配置 kubernetes yum 源

    cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
    [kebernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    EOF
    
  12. 更新 yum 源缓存

    # 清空 yum 源缓存
    yum clean all
    
    # 重新建立 yum 源缓存
    yum makecache
    

2. 安装 Docker

yum install -y docker --disableexcludes=docker-repo && systemctl enable docker && systemctl start docker

3. 安装 k8s 组件

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes && systemctl enable kubelet && systemctl start kubelet

master 节点安装 control-plane

# 如果下面指令无法正确执行,可以将 $(kubectl version | base64 | tr -d '\n') 替换成 kubectl version 查询后获得的 v1.17.0 等值
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=$(kubectl version | base64 | tr -d '\n')

等待安装结束后,会出现类似如下日志信息:

Your Kubernetes control-plane has initialized successful!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  
You should now deploy a pod newwork to the cluser.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  /docs/concepts/cluster-administration/addons/
  
You can now join any number of machines by running the following on each node
as root:

  kubeadm join <control-plane-host>:<control-plane-port> --token <token> --diccovery-token-ca-cert-hash sha256:<hash>

如果是 root 用户,直接执行如下命令:

export KUBECONFIG=/etc/kubernetes/admin.conf

将上述日志中 kubeadm join ... 的命令记录下来,后面将 node 加入到 k8s 集群时需要用到

master 节点安装 pod 通信网络组件

如果不方便访问 github raw 直链资源,可以安装不使用 github raw 直链资源的 weave 插件:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

node 节点加入集群

执行完所有节点环境准备所需的指令后,直接执行前面 master 节点安装 control-plane 时,我们记下的 kubeadm join ... 命令即可,如:

kubeadm join 192.168.1.114:6443 --token itew1n.y3dzxgdthmps3187 --diccovery-token-ca-cert-hash sha256:8697769c7159f9d4c5fa66796aa377a1559b2ed4d808d41c1d5ebebfd3c6b023

查看 k8s 集群状态

# 查看当前运行的系统及 pod 的状态
kubectl get pod -n kube-system

# 查看当前 k8s 集群中,各节点的状态
kubectl get nodes

参考文档

参考 基于阿里云镜像,kubeadm搭建k8s集群

相关文章

网友评论

    本文标题:基于阿里云快速搭建 k8s 社区版集群

    本文链接:https://www.haomeiwen.com/subject/bqzbuhtx.html