Centos7.2部署kubernetes

  1. 环境:
    a. master:192.168.254.141
    b. node01:192.168.254.142
    c. node02:192.168.254.143
    d. 配置hosts
  2. master节点安装:
    a. systemctl stop firewalld && systemctl disable firewalld
    b. yum install kubernetes-master etcd -y
  3. node节点安装:
    a. systemctl stop firewalld && systemctl disable firewalld
    b. yum install kubernetes-node flannel docker -y
    c. systemctl enable docker && systemctl start docker
  4. 配置etc节点:
    a. 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.254.141:2379"
    b. 启动etcd
    i. systemctl start etcd && systemctl enable etcd
    
  5. 配置master节点:
    a. egrep -v “^#” /etc/kubernetes/apiserver | grep -v “^$”
    KUBE_API_ADDRESS=”–insecure-bind-address=0.0.0.0”
    KUBE_ETCD_SERVERS=”–etcd-servers=http://192.168.254.141: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=””
    b. egrep -v “^#” /etc/kubernetes/controller-manager |grep -v “^$”
    KUBE_CONTROLLER_MANAGER_ARGS=”–node-monitor-grace-period=10s –pod-eviction-timeout=10s”
    c. 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.254.141:8080"
    d. 启动服务:
    i. systemctl enable kube-apiserver kube-scheduler kube-controller-manager
    ii. systemctl start kube-apiserver kube-scheduler kube-controller-manager
    
  6. 配置node节点
    a. 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.254.141:8080"
    b. egrep -v “^#” /etc/kubernetes/kubelet | grep -v “^$”
    KUBELET_ADDRESS=”–address=127.0.0.1”
    KUBELET_HOSTNAME=”–hostname-override=docker02”
    KUBELET_API_SERVER=”–api-servers=http://192.168.254.141:8080"
    KUBELET_POD_INFRA_CONTAINER=”–pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest”
    KUBELET_ARGS=”–pod-infra-container-image=kubernetes/pause”
    c. 启动服务:
    i. systemctl enable kubelet kube-proxy
    ii. systemctl start kubelet kube-proxy
    
  7. 配置node节点flannel
    a. 初始化flannel的etcd配置(etc节点操作):
    i. etcdctl -C 127.0.0.1:2379 set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'
    
    b. node节点上操作:
    i. egrep -v "^#" /etc/sysconfig/flanneld | grep -v "^$"
    
    FLANNEL_ETCD_ENDPOINTS=”http://192.168.254.141:2379"
    FLANNEL_ETCD_PREFIX=”/coreos.com/network”
    c. 启动服务:
    i. systemctl enable flanneld
    ii. systemctl restart flanneld docker
    
  8. 测试:
    a. kubectl get nodes