K8S概念梳理
Posted justart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S概念梳理相关的知识,希望对你有一定的参考价值。
1、搭建环境变量 (重点:POD网络[二层网络],服务网络【三层网络IPVS负载】,第一个服务网络地址给了kubernetes 服务【猜想:集群内部组件之间交互,访问api-server,不出网关】)
构建K8S集群,需要规划etcd数据存储节点 (K8S数据存储/WAL存储)---主节点(主服务组件--api-server---scheduler--controller-manage)
#!/bin/bash #roopwd export ROOTPWD=A2qG*ctZNkFUL$X # 生成 EncryptionConfig 所需的加密 key export ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64) # 集群各机器 IP 数组 export NODE_IPS=(123.57.217.206 123.57.217.207 123.57.217.208 123.57.217.200 123.57.217.202 123.57.217.203) #集群内网IP数组 export NODE_IPS_INNER=(172.17.202.100 172.17.202.101 172.17.202.102 172.17.202.98 172.17.202.99 172.17.202.97) # 集群各 IP 对应的主机名数组 export NODE_NAMES=(‘123.57.217.206 etcd0‘ ‘123.57.217.207 etcd1‘ ‘123.57.217.208 etcd2‘ ‘123.57.217.200 kubnode1‘ ‘123.57.217.202 kubnode2‘ ‘123.57.217.203 kubnode3‘) # 集群MASTER机器 IP 数组 export MASTER_IPS=(123.57.217.206 123.57.217.207 123.57.217.208) # export WORKER_IPS=(123.57.217.200 123.57.217.202 123.57.217.203) # 集群所有的master Ip对应的主机 export MASTER_NAMES=(etcd0 etcd1 etcd2) # etcd 集群服务地址列表 export ETCD_ENDPOINTS="https://172.17.202.100:2379,https://172.17.202.101:2379,https://172.17.202.102:2379" # etcd 集群间通信的 IP 和端口 export ETCD_NODES="etcd0=https://172.17.202.100:2380,etcd1=https://172.17.202.101:2380,etcd2=https://172.17.202.102:2380" # etcd 集群所有node ip export ETCD_IPS=(192.168.4.110 192.168.4.111 192.168.4.112 192.168.4.221 192.168.4.222) # kube-apiserver 的反向代理(kube-nginx)地址端口 export KUBE_APISERVER="https://172.17.202.100:8443" #keepalived vid export KUBE_KEEPLIVEDVIP="172.17.202.100" # 节点间互联网络接口名称 export IFACE="eth0" # etcd 数据目录 export ETCD_DATA_DIR="/root/k8s/etcd/data" # etcd WAL 目录,建议是 SSD 磁盘分区,或者和 ETCD_DATA_DIR 不同的磁盘分区 export ETCD_WAL_DIR="/root/k8s/etcd/wal" # k8s 各组件数据目录 export K8S_DATADIR="/root/k8s/data/k8s" # docker 数据目录 #export DOCKER_DIR="/data/k8s/docker" ## 以下参数一般不需要修改 # TLS Bootstrapping 使用的 Token,可以使用命令 head -c 16 /dev/urandom | od -An -t x | tr -d ‘ ‘ 生成 #BOOTSTRAP_TOKEN="41f7e4ba8b7be874fcff18bf5cf41a7c" # 最好使用 当前未用的网段 来定义服务网段和 Pod 网段 # 服务网段,部署前路由不可达,部署后集群内路由可达(kube-proxy 保证) SERVICE_CIDR="10.254.0.0/16" # Pod 网段,建议 /16 段地址,部署前路由不可达,部署后集群内路由可达(flanneld 保证) CLUSTER_CIDR="172.30.0.0/16" # 服务端口范围 (NodePort Range) export NODE_PORT_RANGE="1024-32767" # flanneld 网络配置前缀 export FLANNEL_ETCD_PREFIX="/kubernetes/network" # kubernetes 服务 IP (一般是 SERVICE_CIDR 中第一个IP) export CLUSTER_KUBERNETES_SVC_IP="10.254.0.1" # 集群 DNS 服务 IP (从 SERVICE_CIDR 中预分配) export CLUSTER_DNS_SVC_IP="10.254.0.2" # 集群 DNS 域名(末尾不带点号) export CLUSTER_DNS_DOMAIN="cluster.local"
2、程序交互式登录
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum install -y expect #分发公钥 ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa for i in k8s-01 k8s-02 k8s-03 k8s-04;do expect -c " spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$i expect { "*yes/no*" {send "yes "; exp_continue} "*password*" {send "123456 "; exp_continue} "*Password*" {send "123456 ";} } " done
T
以上是关于K8S概念梳理的主要内容,如果未能解决你的问题,请参考以下文章