1.Environment
10.100.3.118 RHEL 7.1 Master + Etcd
10.100.3.117 RHEL 7.1 Minion
10.100.3.122 Ubuntu 14.04 Minion
2.Master Configuration
# yum install kubernetes kubernetes-master etcd docker iptables iptables-services iptables-utils
Kubernetes version 1.0.3
Etdc version 2.1.1
Docker version 1.7.1
# systemctl disable firewalld
# systemctl stop firewalld
# vim /etc/config/iptables
Add:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2379 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2380 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10250 -j ACCEPT
# systemctl enable iptables
# systemctl restart iptables
# vim /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_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
# vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://10.100.3.118:8080"
KUBE_ETCD_SERVERS="--etcd_servers=http://10.100.3.118:2379"
# vim /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://10.100.3.118: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=""
# vim /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS=""
KUBELET_ADDRESSES="--machines=10.100.3.117"
# systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler
# systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler
3.Minion Configuration
# yum install kubernetes kubernetes-node flannel docker
# systemctl disable firewalld
# systemctl stop firewalld
# vim /etc/sysconfig/iptables
Add:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2379 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2380 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10250 -j ACCEPT
# systemctl enable iptables# systemctl restart iptables
# vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://10.100.3.118:8080"
KUBE_ETCD_SERVERS="--etcd_servers=http://10.100.3.118:2379"
# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=10.100.3.117"
KUBELET_API_SERVER="--api_servers=http://10.100.3.118:8080"
KUBELET_ARGS=""
# systemctl enable kube-proxy kubelet
# systemctl restart kube-proxy kubelet
4.Check Ports
On master: # netstat-tulnp |grep -E “(kube)|(etcd)”
tcp 0 0 127.0.0.1:10251 0.0.0.0:* LISTEN 4819/kube-scheduler
tcp 0 0 127.0.0.1:10252 0.0.0.0:* LISTEN 4818/kube-controlle
tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 4469/etcd
tcp6 0 0 :::6443 :::* LISTEN 4600/kube-apiserver
tcp6 0 0 :::2379 :::* LISTEN 4469/etcd
tcp6 0 0 :::8080 :::* LISTEN 4600/kube-apiserver
On minion: # netstat -tulnp |grep kube
tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 51355/kubelet
tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 51356/kube-proxy
tcp6 0 0 :::37124 :::* LISTEN 51356/kube-proxy
tcp6 0 0 :::10250 :::* LISTEN 51355/kubelet
tcp6 0 0 :::10255 :::* LISTEN 51355/kubelet
tcp6 0 0:::4194 :::* LISTEN 51355/kubelet
5.Check Result
On master:
# kubectl version
Client Version: version.Info{Major:"1", Minor:"1+",GitVersion:"v1.1.0-alpha.0.1909+280b66c9012c21",GitCommit:"b9a88a7d0e357be2174011dd2b127038c6ea8929",GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1+",GitVersion:"v1.1.0-alpha.0.1909+280b66c9012c21",GitCommit:"b9a88a7d0e357be2174011dd2b127038c6ea8929",GitTreeState:"clean"}
#kubectl get nodes
NAME LABELS STATUS
10.100.3.117 kubernetes.io/hostname=10.100.3.117 Ready
On minion and master:
# curl -s -L http://10.100.3.118:2379/version
{"etcdserver":"2.1.1","etcdcluster":"2.1.0"}