zoukankan      html  css  js  c++  java
  • k8s 集群安装---其余master node

    # master01上执行
    USER=root # customizable
    CONTROL_PLANE_IPS="10.3.65.18"
    for host in ${CONTROL_PLANE_IPS}; do
        scp -P 10088 /etc/kubernetes/pki/ca.crt "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/ca.key "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/sa.key "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/sa.pub "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/front-proxy-ca.crt "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/front-proxy-ca.key "${USER}"@$host:/tmp
        scp -P 10088 /etc/kubernetes/pki/etcd/ca.crt "${USER}"@$host:/tmp/etcd-ca.crt
        # Quote this line if you are using external etcd
        scp -P 10088 /etc/kubernetes/pki/etcd/ca.key "${USER}"@$host:/tmp/etcd-ca.key
    done
    
    #其余master上执行
    USER=tmp # customizable
    mkdir -p /etc/kubernetes/pki/etcd
    mv /${USER}/ca.crt /etc/kubernetes/pki/
    mv /${USER}/ca.key /etc/kubernetes/pki/
    mv /${USER}/sa.pub /etc/kubernetes/pki/
    mv /${USER}/sa.key /etc/kubernetes/pki/
    mv /${USER}/front-proxy-ca.crt /etc/kubernetes/pki/
    mv /${USER}/front-proxy-ca.key /etc/kubernetes/pki/
    mv /${USER}/etcd-ca.crt /etc/kubernetes/pki/etcd/ca.crt
    # Quote this line if you are using external etcd
    mv /${USER}/etcd-ca.key /etc/kubernetes/pki/etcd/ca.key
    
    kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
    
    docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.17.17 k8s.gcr.io/kube-proxy:v1.17.17
    docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.17 k8s.gcr.io/kube-apiserver:v1.17.17
    docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.17 k8s.gcr.io/kube-controller-manager:v1.17.17
    docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.17 k8s.gcr.io/kube-scheduler:v1.17.17
    docker tag registry.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
    docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
    docker tag registry.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
    
    
    #node加入命令 #kubeadm
    join 10.3.65.37:6443 --token m40u64.k37bumocdfo4gmjj --discovery-token-ca-cert-hash sha256:d11a8901ec1459035cbd9265d6421438a16af110b506929a4a504809dd0676cf
    #master加入命令
    kubeadm join 10.3.65.37:6443 --token e9kub4.1y1tsheeinjonyaz  --discovery-token-ca-cert-hash sha256:d11a8901ec1459035cbd9265d6421438a16af110b506929a4a504809dd0676cf --control-plane

    初始化脚本,就那几个生成配置文件的,需要确认重改,别的都对

    #master上操作
    scp /etc/yum.repos.d/kubernetes.repo xgcloud-ops-k8s-cluster-3:/etc/yum.repos.d/
    scp /etc/yum.repos.d/kubernetes.repo xgcloud-ops-k8s-cluster-2:/etc/yum.repos.d/
    scp /etc/yum.repos.d/kubernetes.repo xgcloud-ops-k8s-cluster-1:/etc/yum.repos.d/
    
    
    
    
    
    
    #node 上操作
    #有互联网可以用chronyd服务,或者自己的NTP服务
    systemctl status chronyd
    systemctl restart chronyd
    
    #加host
    #hostnamectl set-hostname k8s-master(192.168.73.138主机打命令)
    #hostnamectl set-hostname k8s-node01(192.168.73.139主机打命令)
    #hostnamectl set-hostname k8s-node02 (192.168.73.140主机打命令)
    cat >> /etc/hosts << EOF
    10.3.65.37 xgcloud-ops-k8s-cluster-4
    10.3.65.18 xgcloud-ops-k8s-cluster-3
    10.3.65.14 xgcloud-ops-k8s-cluster-2
    10.3.65.48 xgcloud-ops-k8s-cluster-1
    EOF
     
    #关闭iptables和firewalld服务
    
    systemctl status firewalld
    systemctl stop firewalld
    systemctl stop iptables
    systemctl disable firewalld
    systemctl disable iptables
    
    #内核参数永久修改
    cat <<EOF >  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    
    sysctl -p /etc/sysctl.d/k8s.conf
    
    #SELINUX disable
    getenforce
    sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  && setenforce 0
    
    #禁用swap 
    swapoff -a
    sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab 
    
    #启用ipvs内核模块 写进去吧,这样出错了
    
    cat >> /etc/sysconfig/modules/ipvs.modules << EOF
    #!/bin/bash
    ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs"
    for mod in $(ls $ipvs_mods_dir|grep -o "^[^.]*");do
        /sbin/modinfo -F filename $mod &> /dev/null
        if [ $? -eq 0 ];then
            /sbin/modprobe $mod
        fi
    done
    EOF
    ###vi /etc/sysconfig/modules/ipvs.modules
    ###
    ####!/bin/bash
    ###ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs"
    ###for mod in $(ls $ipvs_mods_dir|grep -o "^[^.]*");do
    ###    /sbin/modinfo -F filename $mod &> /dev/null
    ###    if [$? -eq 0 ];then
    ###        /sbin/modprobe $mod
    ###    fi
    ###done
    
    chmod +x /etc/sysconfig/modules/ipvs.modules
    bash /etc/sysconfig/modules/ipvs.modules
    
    
    ######安装docker###########
    cd /etc/yum.repos.d/
    wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    #scp到各个机器
    yum install -y yum-utils   device-mapper-persistent-data   lvm2
    yum -y install docker-ce
    
    touch /etc/docker/daemon.json 
    
     cat > /etc/docker/daemon.json <<EOF
    {
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://mirror.aliyuncs.com","https://mirror.baidubce.com", "http://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com"],
    "log-driver":"json-file",
    "log-opts": {"max-file": "20","max-size": "100m"}
    }
    EOF
    
    systemctl daemon-reload
    systemctl restart docker
    systemctl enable docker
     
     cat > /etc/yum.repos.d/kubernetes.repo <<EOF
    [kubernetes]
    name=Kubernetes Repo
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
        https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    enabled=1
    EOF
    
    
    #yum repolist
    #yum list all | grep "^kube"
    #yum list kubeadm --showduplicates  这个命令可以看到有哪些版本可以安装
    #yum remove kubectl kubeadm kubelet
    #安装自己需要的版本
    yum -y install kubectl-1.17.3-0 kubeadm-1.17.3-0 kubelet-1.17.3-0
    systemctl enable kubelet
     cat > /etc/sysconfig/kubelet <<EOF
    KUBELET_EXTRA_ARGS="--fail-swap-on=false 
    --runtime-cgroups=/systemd/system.slice 
    --kubelet-cgroups=/systemd/system.slice 
    --allowed-unsafe-sysctls 'kernel.msg*,net.core.somaxconn"
    EOF

    image:

    # 查看需要的镜像
    kubeadm config images list
        k8s.gcr.io/kube-apiserver:v1.18.5
        k8s.gcr.io/kube-controller-manager:v1.18.5
        k8s.gcr.io/kube-scheduler:v1.18.5
        k8s.gcr.io/kube-proxy:v1.18.5
        k8s.gcr.io/pause:3.2
        k8s.gcr.io/etcd:3.4.3-0
        k8s.gcr.io/coredns:1.6.7
    
    docker pull daocloud.io/daocloud/kube-apiserver:v1.18.5
    docker pull daocloud.io/daocloud/kube-controller-manager:v1.18.5
    docker pull daocloud.io/daocloud/kube-scheduler:v1.18.5
    docker pull daocloud.io/daocloud/kube-proxy:v1.18.5
    docker pull daocloud.io/daocloud/pause:3.2
    docker pull daocloud.io/daocloud/etcd:3.4.3-0
    docker pull daocloud.io/daocloud/coredns:1.6.7
    
    docker tag daocloud.io/daocloud/kube-apiserver:v1.18.5 k8s.gcr.io/kube-apiserver:v1.18.5
    docker tag daocloud.io/daocloud/kube-controller-manager:v1.18.5 k8s.gcr.io/kube-controller-manager:v1.18.5
    docker tag daocloud.io/daocloud/kube-scheduler:v1.18.5 k8s.gcr.io/kube-scheduler:v1.18.5
    docker tag daocloud.io/daocloud/kube-proxy:v1.18.5 k8s.gcr.io/kube-proxy:v1.18.5
    docker tag daocloud.io/daocloud/pause:3.2  k8s.gcr.io/pause:3.2
    docker tag daocloud.io/daocloud/etcd:3.4.3-0  k8s.gcr.io/etcd:3.4.3-0
    docker tag daocloud.io/daocloud/coredns:1.6.7  k8s.gcr.io/coredns:1.6.7
    
    docker rmi daocloud.io/daocloud/kube-apiserver:v1.18.5       
    docker rmi daocloud.io/daocloud/kube-controller-manager:v1.18.5
    docker rmi daocloud.io/daocloud/kube-scheduler:v1.18.5
    docker rmi daocloud.io/daocloud/kube-proxy:v1.18.5      
    docker rmi daocloud.io/daocloud/pause:3.2       
    docker rmi daocloud.io/daocloud/etcd:3.4.3-0           
    docker rmi daocloud.io/daocloud/coredns:1.6.7 
    
    #备注,可以只在一个节点上下载后save下来,然后copy到其他节点load。这样速度会快些
    docker save -o kube-proxy_v1.13.0.tar k8s.gcr.io/kube-proxy:v1.13.0
    docker save -o kube-apiserver_v1.13.0.tar k8s.gcr.io/kube-apiserver:v1.13.0
    docker save -o kube-controller-manager_v1.13.0.tar k8s.gcr.io/kube-controller-manager:v1.13.0
    docker save -o coredns_1.2.6.tar k8s.gcr.io/coredns:1.2.6
    docker save -o etcd_3.2.24.tar k8s.gcr.io/etcd:3.2.24 
    docker save -o pause_3.1.tar k8s.gcr.io/pause:3.1
    
    scp to other nodes
    
    for var in $(ls);do docker load < $var;done
    
    
    docker images
    REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
    k8s.gcr.io/kube-proxy                v1.18.5             a1daed4e2b60        12 days ago         117MB
    k8s.gcr.io/kube-apiserver            v1.18.5             08ca24f16874        12 days ago         173MB
    k8s.gcr.io/kube-controller-manager   v1.18.5             8d69eaf196dc        12 days ago         162MB
    k8s.gcr.io/kube-scheduler            v1.18.5             39d887c6621d        12 days ago         95.3MB
    k8s.gcr.io/pause                     3.2                 80d28bedfe5d        4 months ago        683kB
    k8s.gcr.io/coredns                   1.6.7               67da37a9a360        5 months ago        43.8MB
    k8s.gcr.io/etcd                      3.4.3-0             303ce5db0e90        8 months ago        288MB
  • 相关阅读:
    对象的访问定位——如何找到对象
    对象的结构
    对象在内存中的布局-对象的创建
    java的内存模型--jmm
    redis 持久化之rdb总结
    简单说springmvc的工作原理
    抽象类和接口的区别
    hashcode和equals的作用区别及联系
    DBC物品中打包物品参数设置
    关于GOM引擎启动时显示:windows socket error: 在其上下文中,该请求的地址无效。 (10049), on API 'bind'
  • 原文地址:https://www.cnblogs.com/litzhiai/p/14944864.html
Copyright © 2011-2022 走看看