ETCD 192.168.31.143
Master 192.168.31.13
node 192.168.31.14
ETCD
yum install etcd -y # 安装etcd k/v数据库
- 配置
vim /etc/etcd/etcd.conf
ETCD_DATA_DIR="/data/etcd/default.etcd" # 数据存储位置
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.31.143:2379" # 监听地址
ETCD_NAME="etcd_1" # 名称
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.143:2397" #访问地址
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" # 集群
通信地址
- 创建Fanneld网络数据库
#查看ETCD 集群列表;
etcdctl member list
#查看ETCD 集群状态;
etcdctl cluster-health
#获取Config KEY 值;
etcdctl get /atomic.io/network/config
#查看Subnets KEY 列表;
etcdctl ls /atomic.io/network/subnets
#删除Network KEY;
etcdctl rm /atomic.io/network/ --recursive
#创建config KEY,并且设置Values;
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
- 启动
systemctl start etcd
ss -ntlp # 查看验证端口监听
-
ETCD问题
# 权限
cannot access data directory: mkdir /data/etcd/default.etcd: permission denied
etcd服务启动默认使用etcd.etcd 用户启动
chown -R etcd.etcd /xxx/xxx
Flannel 网络
- 配置
vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.31.143:2379" # etcd 数据库地址
FLANNEL_ETCD_PREFIX="/atomic.io/network" # 存储在etcd数据库中的key
- 启动
systemctl start flanneld
K8s master
- 安装
yum install kubernetes-master flannel -y
- 配置
cd /etc/kubernetes/
[root@Docker kubernetes]# ls
apiserver # api配置文件
config # 配置文件
controller-manager # 控制器配置
scheduler #调度配置文件
-
config 配置
KUBE_LOGTOSTDERR="--logtostderr=true" # 日志输出
KUBE_LOG_LEVEL="--v=0" # 日志等级
KUBE_ALLOW_PRIV="--allow-privileged=true" # 特权模式运行容器
KUBE_MASTER="--master=http://192.168.31.13:8080" #监听地址端口
-
apiserver配置文件
KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1" #监听地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.31.143:2379" # etcd数据库地址
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # 地址池
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
- 启动服务
for I in kube-apiserver kube-controller-manager kube-scheduler; do
systemctl start $I
systemctl enable $I
systemctl status $I
done
node
- 安装
yum install kubernetes-node docker flannel *rhsm* -y
- 配置
[root@Docker ~]# cd /etc/kubernetes/
[root@Docker kubernetes]# ls
config # Node 节点主配置文件,指定设置日志、日志级别、启用超级特权、连接Master API 接口服务
kubelet # 责接收Master 节点发送的指令,去调用底层Docker 组件,启动、停止、删除、卸载容器
proxy #为代理文件,主要是用于局域网访问(ServiceVIP 方式)容器,可以通过iptables 做NAT、FORWARD 数据转发
-
config
KUBE_LOGTOSTDERR="--logtostderr=true" # 日志
KUBE_LOG_LEVEL="--v=0" # 日志等级
KUBE_ALLOW_PRIV="--allow-privileged=true" # 特权模式
KUBE_MASTER="--master=http://192.168.31.13:8080" # master 连接
-
kubelet
KUBELET_ADDRESS="--address=192.168.31.14" # node监听地址
KUBELET_HOSTNAME="--hostname-override=192.168.31.14" # hostname设置
KUBELET_API_SERVER="--api-servers=http://192.168.31.13:8080" # master 连接
- 启动
for I in kube-proxy kubelet docker
do
systemctl restart $I
systemctl enable $I
systemctl status $I
done