CentOS 7 部署 Kubernetes

http://www.fangyunlin.com/?p=54

截止至2015年9月1日,CentOS 已经把 kubernetes 加入官方源。

目前各相关组件版本如下

  • kubernetes-1.0.0
  • docker-1.7.1
  • flannel-0.2.0
  • etcd-2.0.11

kubernetes环境角色如下

  • 192.168.1.248 etcd server
  • 192.168.1.247 kubernetes master
  • 192.168.1.246 kubernetes node
  • 192.168.1.245 kubernetes node

Tips:

  1. 虽然我下面均用IP进行操作,但是建议部署的时候,建议用hosts或者DNS取代IP。
  2. 建议做部署前,先更新系统到最新版本,免得一些(我遇到过)的安装问题
    yum update -y
    

各组件用途

  • kube master
    • kube-apiserver

      k8s的管理接口

    • kube-scheduer

      k8s调度器,容器的启动、迁移、扩容缩减时候,选择哪个node,就看它了。

    • kube-controller-manager

      k8s对node的控制行为,比如怎么去调用node启动一个容器。

  • kube node
    • kubelet

      负责node的管理,基本所有操作都靠它。

    • kube-proxy

      每个node里的container都在一个私有网络中,kube-proxy的作用就是做一个反向代理,让访问者访问这个node的时候,可以转发到内部对应的container。

Tips: 当然,这是我狭隘的理解,仅供参考。

etcd

  1. 作为kubernetes的数据库,存储了k8s自身的信息、以及各种业务容器信息等。
  2. 存储flannel网络配置信息,供各节点协调。

安装

安装 etcd 节点

yum install etcd -y

安装 k8s master 节点

yum install kubernetes-master -y

安装 k8s node 节点

yum install kubernetes-node flannel docker -y

配置

etcd 节点配置

[root@localhost ~]# egrep -v “^#” /etc/etcd/etcd.conf

ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.248:2379"

启动服务

systemctl enable etcd
systemctl start etcd

k8s master 节点配置

[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/apiserver | grep -v ‘^$’

KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.1.248:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

[root@localhost kubernetes]# egrep -v ‘^#’ /etc/kubernetes/controller-manager |grep -v ‘^$’

KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/config | egrep -v ‘^$’

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.1.247:8080"

启动服务

systemctl enable kube-apiserver kube-scheduler kube-controller-manager
systemctl start kube-apiserver kube-scheduler kube-controller-manager

k8s node 节点配置

[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/config | grep -v ‘^$’

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.1.247:8080"

[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/kubelet | grep -v ‘^$’

KUBELET_ADDRESS="--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname_override=192.168.1.246"
KUBELET_API_SERVER="--api_servers=http://192.168.1.247:8080"
KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"

启动服务

systemctl enable kubelet kube-proxy
systemctl start kubelet kube-proxy
k8s node 节点配置 flannel

初始化flannel的etcd配置

etcdctl -C 192.168.1.248:2379 set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'

[root@bogon ~]# egrep -v ‘^#’ /etc/sysconfig/flanneld | grep -v ‘^$’

FLANNEL_ETCD="http://192.168.1.248:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"

启动服务

systemctl enable flanenld
systemctl restart flanneld, docker

若网络还不通,就重启下node吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值