• CentOS7 kubeadm 搭建 K8S 1.20.5 (containerd 容器运行时)


    k8s-master 192.168.1.111
    k8s-node1 192.168.1.113
    k8s-node2 192.168.1.116
    
    
    cat >> /etc/hosts << EOF
    192.168.1.111 k8s-master
    192.168.1.113 k8s-node1
    192.168.1.116 k8s-node2
    EOF
    
    
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    vm.swappiness=0
    EOF
    
    modprobe br_netfilter
    
    sysctl -p /etc/sysctl.d/k8s.conf
    
    
    
    cat > /etc/sysconfig/modules/ipvs.modules << EOF
    #!/bin/bash
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    modprobe -- br_netfilter
    EOF
    
    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod |grep -e ip_vs -e nf_conntrack_ipv4
    
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    yum install containerd.io-1.4.4 -y
    
    mkdir -p /etc/containerd
    containerd config default > /etc/containerd/config.toml
    
    sed -i "s#k8s.gcr.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g"              /etc/containerd/config.toml
    sed -i '/containerd.runtimes.runc.options/a            SystemdCgroup = true' /etc/containerd/config.toml
    sed -i "s#https://registry-1.docker.io#https://registry.cn-hangzhou.aliyuncs.com#g"      /etc/containerd/config.toml
    
    systemctl daemon-reload
    systemctl enable containerd
    systemctl restart containerd
    
    
    cat << EOF > /etc/yum.repos.d/kubernetes.repo 
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
    yum install -y kubeadm-1.20.5 kubectl-1.20.5 kubelet-1.20.5
    
    
    crictl config runtime-endpoint /run/containerd/containerd.sock
    
    systemctl daemon-reload
    systemctl enable kubelet && systemctl start kubelet
    
    
    
    ------------------------- 在 Master 上操作
    kubeadm config print init-defaults > kubeadm.yaml 
    
    # 修改 kubeadm.yaml 
    
    advertiseAddress: 192.168.1.111
    
    criSocket: /run/containerd/containerd.sock
    
    imageRepository: registry.aliyuncs.com/google_containers
    
    kubernetesVersion: v1.20.5
    
    # 在 dnsDomain: cluster.local 添加,与 dnsDomain 平级
      podSubnet: 172.16.0.0/16
      
    # 在最后添加
    ---
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    kind: KubeProxyConfiguration
    mode: ipvs 
    ---
    apiVersion: kubelet.config.k8s.io/v1beta1
    kind: KubeletConfiguration
    cgroupDriver: systemd
    
    
    
    kubeadm init --config=kubeadm.yaml
    
    
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    
    ------------------------- 在 Node 节点上操作
    kubeadm join 192.168.1.111:6443 --token abcdef.0123456789abcdef 
        --discovery-token-ca-cert-hash sha256:489e5c81a2925274bc21e8ab97af2ffac0e8b83e5bcb8f86bd9df19f83d4cd26 
    	
    	
    	
    ------------------------- 在 Master 上操作
    yum install wget -y
    mkdir -p /data/yaml/default/calico  
    cd /data/yaml/default/calico
    wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
    
    
    vi calico.yaml
    
    # 修改下面
     - name: calico-node
              image: calico/node:v3.8.9
              env:
                # Use Kubernetes API as the backing datastore.
                - name: DATASTORE_TYPE
                  value: "kubernetes"
                  # 增加下面变量和值,与自己的系统匹配
                - name: IP_AUTODETECTION_METHOD              
                  value: interface=eth0
                  # 找到 CALICO_IPV4POOL_CIDR 修改成 172.16.0.0/16
                - name: CALICO_IPV4POOL_CIDR
                  value: "172.16.0.0/16"
    
    kubectl apply -f calico.yaml
    
    
    # 测试查看到 node 节点为 Ready 状态即可
    kubectl get nodes 
    

    DNS解析测试

    kubectl run -it --rm dns-test --image=busybox:1.28.4 sh
    
    # 执行下面,查看能否正常解析出 kubernetes
    nslookup kubernetes
    
    
  • 相关阅读:
    Canvas API
    Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
    Lind.DDD.LindMQ~关于持久化到Redis的消息格式
    MongoDB学习笔记~根据子集合里某个属性排序
    大叔最新课程~MVC核心技术剖析
    大叔最新课程~EF核心技术剖析
    hdu4300之KMP&&EKMP
    HDU 2594 Simpsons’ Hidden Talents KMP
    邮箱工具(尚未完成)的几个组件类
    java--折半查找
  • 原文地址:https://www.cnblogs.com/klvchen/p/15021527.html
Copyright © 2020-2023  润新知