• Kubernetes二进制部署——理论部分


    Kubernetes二进制部署

    一、环境准备

    k8s集群master01: 192.168.80.71   kube-apiserver kube-controller-manager kube-scheduler etcd
    k8s集群master02: 192.168.80.74
    
    k8s集群node01: 192.168.80.72     kubelet kube-proxy docker flannel
    k8s集群node02: 192.168.80.73
    
    etcd集群节点1: 192.168.80.71     etcd
    etcd集群节点2: 192.168.80.72
    etcd集群节点3: 192.168.80.73
    
    负载均衡nginx+keepalive01 (master) : 192.168.80.76
    负载均衡nginx+keepalive02 (backup) : 192.168.80.77
    
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 单master至少3台k8s集群,一台master主机,两台node节点,运用去中心化思想,节省服务器,将三台etcd节点配置在master和node主机上
    • 双master节点至少六台主机,两台Master主机,两台node主机,三台etcd节点配置在master和node节点上,两台负载均衡节点主机
    • api server与客户端kubectl通信加密,api server与etcd通信加密,etcd数据库之间通信加密,需要签发证书

    二、部署etcd集群

    1、准备签发证书环境

    2、签发证书步骤

    ##### 在 master01 节点上操作
    
    //下载证书制作工具
    wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl
    wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/local/bin/cfssljson
    wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/local/bin/cfssl-certinfo
    或
    curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
    curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
    curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
    
    chmod +x /usr/local/bin/cfssl*
    
    ------
    
    cfssl:证书签发的工具命令
    cfssljson:将 cfssl 生成的证书(json格式)变为文件承载式证书
    cfssl-certinfo:验证证书的信息
    
    ## cfssl-certinfo -cert <证书名称>			#查看证书的信息
    
    //创建k8s工作目录
    mkdir /opt/k8s
    cd /opt/k8s/
    
    //上传 etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中
    chmod +x etcd-cert.sh etcd.sh
    
    //创建用于生成CA证书、etcd 服务器证书以及私钥的目录
    mkdir /opt/k8s/etcd-cert
    mv etcd-cert.sh etcd-cert/
    cd /opt/k8s/etcd-cert/
    ./etcd-cert.sh			#生成CA证书、etcd 服务器证书以及私钥
    
    ls
    ca-config.json  ca-csr.json  ca.pem        server.csr       server-key.pem
    ca.csr          ca-key.pem   etcd-cert.sh  server-csr.json  server.pem
    
    ---------- 启动etcd服务 ---------- 
    //etcd 二进制包地址:https://github.com/etcd-io/etcd/releases
    
    //上传 etcd-v3.3.10-linux-amd64.tar.gz 到 /opt/k8s/ 目录中,解压 etcd 压缩包
    cd /opt/k8s/
    tar zxvf etcd-v3.3.10-linux-amd64.tar.gz
    ls etcd-v3.3.10-linux-amd64
    
    ## Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md
    
    etcd就是etcd 服务的启动命令,后面可跟各种启动参数
    
    ## etcdctl主要为etcd 服务提供了命令行操作
    
    //创建用于存放 etcd 配置文件,命令文件,证书的目录
    mkdir -p /opt/etcd/{cfg,bin,ssl}
    
    mv /opt/k8s/etcd-v3.3.10-linux-amd64/etcd /opt/k8s/etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/
    cp /opt/k8s/etcd-cert/*.pem /opt/etcd/ssl/
    
    ./etcd.sh etcd01 192.168.80.10 etcd02=https://192.168.80.11:2380,etcd03=https://192.168.80.12:2380
    //进入卡住状态等待其他节点加入,这里需要三台etcd服务同时启动,如果只启动其中一台后,服务会卡在那里,直到集群中所有etcd节点都已启动,可忽略这个情况
    
    //另外打开一个窗口查看etcd进程是否正常
    ps -ef | grep etcd
    
    //把etcd相关证书文件和命令文件全部拷贝到另外两个etcd集群节点
    scp -r /opt/etcd/ root@192.168.80.11:/opt/
    scp -r /opt/etcd/ root@192.168.80.12:/opt/
    
    //把etcd服务管理文件拷贝到另外两个etcd集群节点
    scp /usr/lib/systemd/system/etcd.service root@192.168.80.11:/usr/lib/systemd/system/
    scp /usr/lib/systemd/system/etcd.service root@192.168.80.12:/usr/lib/systemd/system/
    
    ##### 在 node01 节点上修改
    
    vim /opt/etcd/cfg/etcd
    #[Member]
    ETCD_NAME="etcd02"											#修改
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="https://192.168.80.11:2380"			#修改
    ETCD_LISTEN_CLIENT_URLS="https://192.168.80.11:2379"		#修改
    
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.80.11:2380"		#修改
    ETCD_ADVERTISE_CLIENT_URLS="https://192.168.80.11:2379"				#修改
    ETCD_INITIAL_CLUSTER="etcd01=https://192.168.80.10:2380,etcd02=https://192.168.80.11:2380,etcd03=https://192.168.80.12:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"
    
    //启动etcd服务
    systemctl start etcd
    systemctl enable etcd
    systemctl status etcd
    
    ##### 在 node02 节点上修改
    
    vim /opt/etcd/cfg/etcd
    #[Member]
    ETCD_NAME="etcd03"											#修改
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="https://192.168.80.12:2380"			#修改
    ETCD_LISTEN_CLIENT_URLS="https://192.168.80.12:2379"		#修改
    
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.80.12:2380"		#修改
    ETCD_ADVERTISE_CLIENT_URLS="https://192.168.80.12:2379"				#修改
    ETCD_INITIAL_CLUSTER="etcd01=https://192.168.80.10:2380,etcd02=https://192.168.80.11:2380,etcd03=https://192.168.80.12:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"
    
    //启动etcd服务
    systemctl start etcd
    systemctl enable etcd
    systemctl status etcd
    
    ##### 在 master01 节点上操作
    
    ln -s /opt/etcd/bin/etcd* /usr/local/bin
    
    //检查etcd群集状态
    cd /opt/etcd/ssl
    /opt/etcd/bin/etcdctl \
    --ca-file=ca.pem \
    --cert-file=server.pem \
    --key-file=server-key.pem \
    --endpoints="https://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379" \
    cluster-health
    
    ------
    
    --cert-file:识别HTTPS端使用SSL证书文件
    --key-file:使用此SSL密钥文件标识HTTPS客户端
    --ca-file:使用此CA证书验证启用https的服务器的证书
    --endpoints:集群中以逗号分隔的机器地址列表
    
    ## cluster-health:检查etcd集群的运行状况
    
    //切换到etcd3版本查看集群节点状态和成员列表
    export ETCDCTL_API=3						#v2和v3命令略有不同,etcd2和etcd3也是不兼容的,默认是v2版本
    etcdctl --write-out=table endpoint status
    etcdctl --write-out=table member list
    export ETCDCTL_API=2						#再切回v2版本
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143

    3、etcd-cert.sh和etcd.sh脚本

    etcd-cert.sh

    #!/bin/bash
    #配置证书生成策略,让 CA 软件知道颁发有什么功能的证书,生成用来签发其他组件证书的根证书
    cat > ca-config.json < ca-csr.json <:使用 CSRJSON 文件生成生成新的证书和私钥。如果不添加管道符号,会直接把所有证书内容输出到屏幕。
    #注意:CSRJSON 文件用的是相对路径,所以 cfssl 的时候需要 csr 文件的路径下执行,也可以指定为绝对路径。
    #cfssljson 将 cfssl 生成的证书(json格式)变为文件承载式证书,-bare 用于命名生成的证书文件。
    
    #-----------------------
    #生成 etcd 服务器证书和私钥
    cat > server-csr.json <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107

    etcd.sh

    #!/bin/bash
    
    # example: ./etcd.sh etcd01 192.168.61.11
    etcd02=https://192.168.61.22:2380,etcd03=https://192.168.61.33:2380
    
    #创建etcd配置文件/opt/etcd/cfg/etcd
    ETCD_NAME=$1
    ETCD_IP=$2
    ETCD_CLUSTER=$3
    
    WORK_DIR=/opt/etcd
    
    cat > $WORK_DIR/cfg/etcd  <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    4、部署流程

    • 准备cfssl证书生成工具

    • 生成证书

    • 生成etcd二进制

    • 生成etcd的配置文件和服务管理文件

    • 启动etcd

    • 把etcd01的配置文件,可执行文件,证书,etcd服务管理文件 复制到etcd02 etcd03 节点上

    • etcd02 etcd03 修改配置文件

    • 启动etcd 加入集群

    • 验证etcd集群状态

    5、使用证书访问的工作流程:

    (1)客户端发起请求,连接到服务器的进程端口。
    (2)服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
    (3)服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
    (4)客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的密钥对,用证书.的公钥加密。
    (5)客户端将公钥加密后的密钥发送到服务器。
    (6)服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,这样传输的数据都是密文了。
    (7)服务器将加密后的密文数据返回到客户端。
    (8)客户端收到后,用自己的密钥对其进行对称解密,得到服务器返回的数据。

    四、部署docker引擎

    //所有node节点部署docker引擎
    yum install -y yum-utils device-mapper-persistent-data lvm2 
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    yum install -y docker-ce docker-ce-cli containerd.io
    
    systemctl start docker.service
    systemctl enable docker.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    五、flannel网络配置

    1、K8S 中Pod 网络通信:

    Pod内容器与容器之间的通信

    • 在同一个Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命令空间,相当于它们在同一台机器上一样,可以用localhost地址访问彼此的端口。

    同一个Node内Pod之间的通信

    • 每个Pod 都有一个真实的全局IP地址,同一个Node 内的不同Pod 之间可以直接采用对方Pod的IP地址进行通信,Pod1 与Pod2 都是通过Veth连接到同一-个docker0 网桥(172.1.0.0),网段相同,所以它们之间可以直接通信。

    不同Node上Pod之间的通信

    • Pod 地址与docker0 在同一网段,docker0 网段与宿主机网卡是两个不同的网段,且不同Node之间的通信只能通过宿主机的物理网卡进行。
    • 要想实现不同Node上Pod之间的通信,就必须想办法通过主机的物理网卡IP地址进行寻址和通信。因此要满足两个条件:Pod的IP不能冲突;将Pod的IP和所在的Node的IP关联起来,通过这个关联让不同Node上Pod之间直接通过内网IP地址通信。

    在这里插入图片描述

    2、Flannel

    Overlay Network:

    • 叠加网络,在二层或者三层基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路隧道连接起来(类似于VPN)

    VXLAN:

    • 将源数据包封装到UDP中,并使用基础网络的IP/MAC作为外层报文头进行封装,然后在以太网上传输,到达目的地后由隧道端点解封装并将数据发送给目标地址。

    Flannel:

    • Flannel的功能是让集群中的不同节点主机创建的Docker 容器都具有全集群唯一的虚拟 IP地址。
    • Flannel是Overlay网络的一种,也是将TCP源数据包封装在另一种网络包里面进行路由转发和通信,目前己经支持UDP、VXLAN、AWS VPC等数据转发方式。

    作用:Flannel网络插件,用于不同node组件pod相互通信

    3、Flannel工作原理:

    • 数据从node01 上Pod 的源容器中发出后,经由所在主机的docker0 虚拟网卡转发到flannel0 虚拟网卡,flanneld 服务监听在flanne10虚拟网卡的另外一端。

    • Flannel通过Etcd服务维护了一张节点间的路由表。源主机node01的flanneld服务将原本的数据内容封装到UDP中后根据自己的路由表通过物理网卡投递给目的节点node02 的flanneld 服务,数据到达以后被解包,然后直接进入目的节点的flannel0虚拟网卡,之后被转发到目的主机的docker0 虚拟网卡,最后就像本机容器通信一样由docker0 转发到目标容器。

      在这里插入图片描述

    源IP  10.1.15.3   --->66.11  (Flannel封装):[IP头部  MAC头部 比特流] 
    (UDP)封装到UDP中吗UDP中有内部IP,包括源IP和目的IP
    ---> 66.12  (Flannel解封装):[MAC头部  IP头  UDP]  --->  目的IP 10.1.20.3
    
    
    • 1
    • 2
    • 3
    • 4
    • flannel作用是实现不同Node上的pod之间相互通信
    • flannel会把内部的pod IP封装到UDP中,再通过API server查看etcd,再根据在 etcd 保存的路由表,通过物理网卡发送给目的node
    • 目的node在接收到转发的数据后,由flannel解封装,暴露出udp里面的内部pod IP,再根据目的IP由flannei0–>docker0转发到目的pod中。

    ETCD之Flannel 提供说明:

    • 存储管理Flannel可分配的IP地址段资源
    • 监控ETCD中每个Pod 的实际地址,并在内存中建立维护Pod 节点路由表

    4、搭建flannel

    ##### 在 master01 节点上操作
    
    //添加 flannel 网络配置信息,写入分配的子网段到 etcd 中,供 flannel 使用
    cd /opt/etcd/ssl
    /opt/etcd/bin/etcdctl \
    --ca-file=ca.pem \
    --cert-file=server.pem \
    --key-file=server-key.pem \
    --endpoints="https://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379" \
    set /coreos.com/network/config '{"Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'
    
    //查看写入的信息
    /opt/etcd/bin/etcdctl \
    --ca-file=ca.pem \
    --cert-file=server.pem \
    --key-file=server-key.pem \
    --endpoints="https://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379" \
    get /coreos.com/network/config
    
    ------
    
    set  
    set /coreos.com/network/config 添加一条网络配置记录,这个配置将用于flannel分配给每个docker的虚拟IP地址段
    get 
    get /coreos.com/network/config 获取网络配置记录,后面不用再跟参数了
    
    Network:用于指定Flannel地址池
    
    ## Backend:用于指定数据包以什么方式转发,默认为udp模式,Backend为vxlan比起预设的udp性能相对好一些
    
    ##### 在所有 node 节点上操作
    
    //上传 flannel.sh 和 flannel-v0.10.0-linux-amd64.tar.gz 到 /opt 目录中,解压 flannel 压缩包
    cd /opt
    tar zxvf flannel-v0.10.0-linux-amd64.tar.gz
    flanneld				#flanneld为主要的执行文件
    mk-docker-opts.sh		#mk-docker-opts.sh脚本用于生成Docker启动参数
    README.md
    
    //创建kubernetes工作目录
    mkdir -p /opt/kubernetes/{cfg,bin,ssl}
    
    cd /opt
    mv mk-docker-opts.sh flanneld /opt/kubernetes/bin/
    
    //启动flanneld服务,开启flannel网络功能
    cd /opt
    chmod +x flannel.sh
    ./flannel.sh https://192.168.80.10:2379,https://192.168.80.11:2379,https://192.168.80.12:2379
    
    //flannel启动后会生成一个docker网络相关信息配置文件/run/flannel/subnet.env,包含了docker要使用flannel通讯的相关参数
    cat /run/flannel/subnet.env
    DOCKER_OPT_BIP="--bip=172.17.26.1/24"
    DOCKER_OPT_IPMASQ="--ip-masq=false"
    DOCKER_OPT_MTU="--mtu=1450"
    
    ## DOCKER_NETWORK_OPTIONS=" --bip=172.17.26.1/24 --ip-masq=false --mtu=1450"
    
    --bip:指定 docker 启动时的子网
    --ip-masq:设置 ipmasq=false 关闭 snat 伪装策略
    --mtu=1450:mtu 要留出50字节给外层的vxlan封包的额外开销使用
    
    Flannel启动过程解析:
    1、从etcd中获取network的配置信息
    2、划分subnet,并在etcd中进行注册
    
    ## 3、将子网信息记录到/run/flannel/subnet.env中
    
    //修改docker服务管理文件,配置docker连接flannel
    vim /lib/systemd/system/docker.service
    ......
    [Service]
    Type=notify
    
    # the default is not to use systemd for cgroups because the delegate issues still
    
    # exists and systemd currently does not support the cgroup feature set required
    
    # for containers run by docker
    
    EnvironmentFile=/run/flannel/subnet.env						#添加
    ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS -H fd:// --containerd=/run/containerd/containerd.sock	#修改
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutSec=0
    RestartSec=2
    Restart=always
    
    //重启docker服务
    systemctl daemon-reload
    systemctl restart docker
    
    //查看 docker0 和 flannel.1 的 IP 地址,此时应该在同一网段里
    ifconfig
    docker0: flags=4099  mtu 1500
            inet 172.17.26.1  netmask 255.255.255.0  broadcast 172.17.26.255
    ......
    flannel.1: flags=4163  mtu 1450
            inet 172.17.26.0  netmask 255.255.255.255  broadcast 0.0.0.0	
    ......
    
    //在 node01 节点测试 ping 通 node02 节点的 docker0 网卡,证明 flannel 已起到路由作用
    ping -I 172.17.26.1 172.17.36.1
    
    //创建并进入容器
    docker run -itd centos:7 /bin/bash
    
    //在容器中下载工具,测试 ping 通 node02 节点中的 centos:7 容器
    yum install net-tools -y
    ping -I 172.17.26.2 172.17.36.2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109

    5、flannel的操作流程

    • 使用etcdctl 在 etcd 中添加flannel 的网段和转发模式 upd 、vxlan
    • 准备flannel 安装包
    • 生成 docker 网络参数 并启动 flannel 服务
    • 修改 docker 启动参数 ,使 docker 0 网卡和 flannel 网卡保持在一个网段里
    • 验证 node 之间的容器通信是否正常

    总结

    CA证书

    在这里插入图片描述

  • 相关阅读:
    Magento_CentOS安装
    1.区块链系列之入门
    Go Through an ML project
    C++【类的自动类型转换和强制类型转换】,总要了解一下
    深度学习(五)——DatadLoader的使用
    数据库timestamp遇到的小问题
    Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标
    A-Level经济真题(8)
    [春秋云境] CVE-2022-32991
    单个人工神经元模型示意图,人体神经元模型制作
  • 原文地址:https://blog.csdn.net/m0_61744194/article/details/126009926