• kubeadm快速部署kubernetes集群(v1.22.3) wang


    1.基础环境
    ip                  hostname        cpu/memory
    192.168.200.11      master01        2C4G
    192.168.200.12      master02        2C4G
    192.168.200.13      master03        2C4G
    192.168.200.14      node01          4C8G
    192.168.200.15      node02          4C8G
    192.168.200.50      lb              1C2G
     
    modprobe br_netfilter
      
    cat >> /etc/sysctl.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
    sysctl -p
     
    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
    EOF
     
    chmod 755 /etc/sysconfig/modules/ipvs.modules
    source /etc/sysconfig/modules/ipvs.modules
    yum -y install ipvsadm ipset
      
    2.配置负载均衡节点
    yum -y install nginx keepalived
    yum -y install nginx-all-modules.noarch
     
    cat >> /etc/nginx/nginx.conf << EOF
    stream {
        log_format proxy '$time_local|$remote_addr|$upstream_addr|$protocol|$status|'
                         '$session_time|$upstream_connect_time|$bytes_sent|$bytes_received|'
                         '$upstream_bytes_sent|$upstream_bytes_received' ;
        upstream kube-apiserver {
            server 192.168.200.11:6443;
            server 192.168.200.12:6443;
            server 192.168.200.13:6443;
        }
     
        server {
            listen 6443 backlog=65535 so_keepalive=on;
            allow 10.10.0.0/16;
            allow 172.16.0.0/16;
            allow 192.168.200.0/24;
            deny all;
     
            proxy_connect_timeout 3s;
            proxy_next_upstream on;
            proxy_next_upstream_timeout 5;
            proxy_next_upstream_tries 1;
     
            proxy_pass kube-apiserver;
            access_log /var/log/nginx/kube-apiserver.log proxy;
        }
    }
    EOF
     
    systemctl enable nginx
    systemctl start nginx
     
    3.安装容器运行时环境和kubeadm工具
    wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum -y install docker-ce
    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json << EOF
    {
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"]
    }
    EOF
      
    systemctl daemon-reload
    systemctl start docker
    systemctl enable docker
     
    cat > /etc/yum.repos.d/kubeadm.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
      
    yum install -y kubeadm kubelet kubectl
    systemctl enable kubelet.service
    
    4.部署kubernetes主节点
    kubeadm init --control-plane-endpoint "192.168.200.50:6443" --pod-network-cidr 10.10.0.0/16 --service-cidr 172.16.0.0/16 \
    --image-repository registry.aliyuncs.com/google_containers --upload-certs | tee kubeadm-init.log
      
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    5.部署cni网络插件
    wget -O calico.yaml --no-check-certificate https://docs.projectcalico.org/manifests/calico.yaml
    vim calico.yaml
                - name: CALICO_IPV4POOL_CIDR
                  value: "10.10.0.0/16"
      
    kubectl apply -f calico.yaml
     
    6.修改service调度策略
    kubectl edit cm kube-proxy -n kube-system  # mode: "ipvs"
    kubectl get pod -n kube-system | grep kube-proxy | awk '{print $1}' | xargs kubectl -n kube-system delete pod
      
    7.kubectl命令补全
    yum install bash-completion -y
    source /usr/share/bash-completion/bash_completion
    kubectl completion bash > /etc/bash_completion.d/kubectl
    source /etc/bash_completion.d/kubectl
      
    8.查看集群信息
    [root@master01 ~]# kubectl get nodes -owide
    NAME       STATUS   ROLES                  AGE    VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
    master01   Ready    control-plane,master   102m   v1.22.3   192.168.200.11   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://20.10.10
    master02   Ready    control-plane,master   33m    v1.22.3   192.168.200.12   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://20.10.10
    master03   Ready    control-plane,master   34m    v1.22.3   192.168.200.13   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://20.10.10
    node01     Ready    <none>                 69m    v1.22.3   192.168.200.14   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://20.10.10
    node02     Ready    <none>                 69m    v1.22.3   192.168.200.15   <none>        CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://20.10.10
    [root@master01 ~]# kubectl get all --all-namespaces
    NAMESPACE     NAME                                           READY   STATUS    RESTARTS      AGE
    kube-system   pod/calico-kube-controllers-5d995d45d6-pqlg9   1/1     Running   0             21m
    kube-system   pod/calico-node-2tndn                          1/1     Running   0             21m
    kube-system   pod/calico-node-5xrnv                          1/1     Running   0             21m
    kube-system   pod/calico-node-dq8rm                          1/1     Running   0             21m
    kube-system   pod/calico-node-qmffw                          1/1     Running   0             21m
    kube-system   pod/calico-node-wgbhj                          1/1     Running   0             21m
    kube-system   pod/coredns-7f6cbbb7b8-fnl98                   1/1     Running   0             102m
    kube-system   pod/coredns-7f6cbbb7b8-krvbv                   1/1     Running   0             102m
    kube-system   pod/etcd-master01                              1/1     Running   0             102m
    kube-system   pod/etcd-master02                              1/1     Running   0             33m
    kube-system   pod/etcd-master03                              1/1     Running   0             34m
    kube-system   pod/kube-apiserver-master01                    1/1     Running   0             102m
    kube-system   pod/kube-apiserver-master02                    1/1     Running   1 (34m ago)   11m
    kube-system   pod/kube-apiserver-master03                    1/1     Running   0             34m
    kube-system   pod/kube-controller-manager-master01           1/1     Running   0             100s
    kube-system   pod/kube-controller-manager-master02           1/1     Running   0             97s
    kube-system   pod/kube-controller-manager-master03           1/1     Running   0             94s
    kube-system   pod/kube-proxy-ddg24                           1/1     Running   0             8m22s
    kube-system   pod/kube-proxy-g8qw6                           1/1     Running   0             8m23s
    kube-system   pod/kube-proxy-qvp4b                           1/1     Running   0             8m22s
    kube-system   pod/kube-proxy-shqjg                           1/1     Running   0             8m23s
    kube-system   pod/kube-proxy-vzfpd                           1/1     Running   0             8m23s
    kube-system   pod/kube-scheduler-master01                    1/1     Running   0             99s
    kube-system   pod/kube-scheduler-master02                    1/1     Running   0             97s
    kube-system   pod/kube-scheduler-master03                    1/1     Running   0             94s
     
    NAMESPACE     NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE
    default       service/kubernetes   ClusterIP   172.16.0.1    <none>        443/TCP                  102m
    kube-system   service/kube-dns     ClusterIP   172.16.0.10   <none>        53/UDP,53/TCP,9153/TCP   102m
     
    NAMESPACE     NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
    kube-system   daemonset.apps/calico-node   5         5         5       5            5           kubernetes.io/os=linux   21m
    kube-system   daemonset.apps/kube-proxy    5         5         5       5            5           kubernetes.io/os=linux   102m
     
    NAMESPACE     NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
    kube-system   deployment.apps/calico-kube-controllers   1/1     1            1           21m
    kube-system   deployment.apps/coredns                   2/2     2            2           102m
     
    NAMESPACE     NAME                                                 DESIRED   CURRENT   READY   AGE
    kube-system   replicaset.apps/calico-kube-controllers-5d995d45d6   1         1         1       21m
    kube-system   replicaset.apps/coredns-7f6cbbb7b8                   2         2         2       102m
    [root@master01 ~]# ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  172.16.0.1:443 rr
      -> 192.168.200.11:6443          Masq    1      0          0        
      -> 192.168.200.12:6443          Masq    1      0          0        
      -> 192.168.200.13:6443          Masq    1      0          0        
    TCP  172.16.0.10:53 rr
      -> 172.16.196.130:53            Masq    1      0          0        
      -> 172.16.196.131:53            Masq    1      0          0        
    TCP  172.16.0.10:9153 rr
      -> 172.16.196.130:9153          Masq    1      0          0        
      -> 172.16.196.131:9153          Masq    1      0          0        
    UDP  172.16.0.10:53 rr
      -> 172.16.196.130:53            Masq    1      0          0        
      -> 172.16.196.131:53            Masq    1      0          0        
    [root@master01 ~]#
    

      

  • 相关阅读:
    【IDEA】(4)---很好用的DEBUG功能
    【IDEA】(3)---非常实用提高开发效率和水平的插件
    【IDEA】(2)---MAC代码模版
    【IDEA】(1)---MAC下常用快捷键
    Shell(2)—数组
    MySQL(12)---纪录一次left join一对多关系而引起的BUG
    MySQL(11)---约束
    Shell(1)---变量
    算法(2)---算法复杂度理论
    MySQL(10)---自定义函数
  • 原文地址:https://www.cnblogs.com/wang-hongwei/p/15465436.html
Copyright © 2020-2023  润新知