Centos7 kubeadm安装K8S集群

一、环境准备

192.168.90.90    master
192.168.90.91    node01
192.168.90.92    node02

二、系统设置

【所有节点都执行】
1、禁用selinux、swap、firewalld、iptables
    
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    swapoff -a
    sed -i 's|^\(/.*swap\)|#\1|' /etc/fstab

    systemctl stop iptables
    systemctl disable iptables

    systemctl status firewalld
    systemctl disable firewalld
    
【所有节点都执行】
2、升级内核
    yum -y update kernel*


【Master节点执行】
3、集群免密
    ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
    
    ssh-copy-id 192.168.90.90
    ssh-copy-id 192.168.90.91
    ssh-copy-id 192.168.90.92


【所有节点都执行】
4、开启网络转发
    cat <<EOF | tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    
    sudo modprobe overlay
    sudo modprobe br_netfilter
    
    cat <<EOF | tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward                 = 1
    EOF
    
    sudo sysctl --system
    
    lsmod | grep br_netfilter
    lsmod | grep overlay
    
    sysctl \
    net.bridge.bridge-nf-call-iptables \
    net.bridge.bridge-nf-call-ip6tables \
    net.ipv4.ip_forward
    

三、安装集群组件

【所有节点都执行】
1、containerd安装配置
    yum remove -y docker docker-common docker-selinux docker-engine
    
    curl -o /etc/yum.repos.d/docker-ce.repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    sed -e 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' \
        -i.bak /etc/yum.repos.d/docker-ce.repo
    
    yum makecache fast
    yum install -y containerd

    mv /etc/containerd/config.toml /etc/containerd/config.toml.default
    
    containerd config default > /etc/containerd/config.toml
    sed -i 's|registry.k8s.io|registry.aliyuncs.com/google_containers|g' /etc/containerd/config.toml

    systemctl enable containerd
    systemctl restart containerd
    systemctl status containerd


【所有节点都执行】
2、安装kubeadm、kubelet、kubectl
    cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
    enabled=1
    gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    exclude=kubelet kubeadm kubectl
    EOF
    
    sed -e "s|packages.cloud.google.com|mirrors.aliyun.com/kubernetes|" \
        -e "s|gpgcheck=1|gpgcheck=0|" \
        -i /etc/yum.repos.d/kubernetes.repo

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

    kubeadm config images list --image-repository registry.aliyuncs.com/google_containers
    kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

【Master节点执行】
4、集群初始化
    kubeadm init \
    --apiserver-advertise-address 192.168.90.90 \
    --apiserver-bind-port 6443 \
    --control-plane-endpoint 192.168.90.90 \
    --service-cidr=10.119.0.0/16 \
    --service-dns-domain="cluster.local" \
    --pod-network-cidr=10.120.0.0/16 \
    --image-repository registry.aliyuncs.com/google_containers 

【Master节点执行】
5、配置环境变量(初始化集群后会显示)
    export KUBECONFIG=/etc/kubernetes/admin.conf
    cat <<EOF | tee -a ~/.bash_profile
    export KUBECONFIG=/etc/kubernetes/admin.conf
    EOF
    source  ~/.bash_profile
    
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

【Master、Node选择节点执行】
5、集群节点加入
    (加入master节点)
    You can now join any number of control-plane nodes by copying certificate authorities
    and service account keys on each node and then running the following as root:

      kubeadm join 192.168.90.90:6443 --token nwc0z8.jdfc102z4ocpgtlo \
            --discovery-token-ca-cert-hash sha256:aafd6f69a0a10e22fabdf2367ef6cc200f188fd7f4cc330b02b7ac7d256e304b \
            --control-plane

    (加入node节点)
    Then you can join any number of worker nodes by running the following on each as root:
    
    kubeadm join 192.168.90.90:6443 --token nwc0z8.jdfc102z4ocpgtlo \
            --discovery-token-ca-cert-hash sha256:aafd6f69a0a10e22fabdf2367ef6cc200f188fd7f4cc330b02b7ac7d256e304b

四、安装网络组件

【Master节点执行】
1、下载calico网络组件
wget https://docs.projectcalico.org/manifests/calico.yaml

2、修改calico配置
    
    #将CALICO_IPV4POOL_CIDR修改为初始化时的网络10.244.0.0/16
    - name: CALICO_IPV4POOL_CIDR
      value: "10.120.0.0/16"

    #添加指定网卡
    - name: CLUSTER_TYPE
      value: "k8s,bgp"

    - name: IP_AUTODETECTION_METHOD
      value: "interface=ens*"
      

3、启动calico服务
    kubectl apply -f calico.yaml

五、集群检查

【Master节点执行】
    kubectl get nodes
    kubectl get pods -n kube-system

 

posted @ 2024-07-11 21:04  吕钦扬  阅读(15)  评论(0)    收藏  举报