[root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux[root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core)
[网络环境]Master => hostnamectl --static set-hostname k8s-masterNODE1 => hostnamectl --static set-hostname k8s-node-1//echo '10.0.0.107 k8s-master10.0.0.107 etcd10.0.0.107 registry10.0.0.101 k8s-node-1' >> /etc/hosts// 关闭防火墙systemctl disable firewalld.service && systemctl stop firewalld.service
| 节点及功能 | 主机名 | IP |
|---|---|---|
| Master、etcd、registry | K8s-master | 10.0.0.107 |
| Node1 | K8s-node-1 | 10.0.0.106 |
| Node2 | K8s-node-2 | 10.0.0.108 |
安装
[etcd]:yum install etcd -y[docker]:yum install docker -y[kubernets]:yum install kubernetes -y# kube-apiserver, kube-controller-manager, kube-scheduler# kubelet, kube-proxy
Master 配置
[etcd]
[vim /etc/etcd/etcd.conf]ETCD_NAME=masterETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"ETCD_ADVERTISE_CLIENT_URLS="http://etcd:2379,http://etcd:4001"[启动]# systemctl enable etcd && systemctl start etcd[检测]# etcdctl -C http://etcd:4001 cluster-healthmember 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379cluster is healthy# etcdctl -C http://etcd:2379 cluster-healthmember 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379cluster is healthy# etcdctl set testdir/testkey0 0# etcdctl get testdir/testkey0
[docker]
[vim /etc/sysconfig/docker]# Modify these options if you want to change the way the docker daemon runsOPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'if [ -z "${DOCKER_CERT_PATH}" ]; thenDOCKER_CERT_PATH=/etc/dockerfiOPTIONS='--insecure-registry registry:5000' # 添加[启动]chkconfig docker on && service docker start

[kubernets => API Server & Controller Manager & Scheduler]
[vim /etc/kubernetes/apiserver]KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"KUBE_API_PORT="--port=8080"KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379"# 删除 ServiceAccountKUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"[vim /etc/kubernetes/config]KUBE_MASTER="--master=http://k8s-master:8080"


[启动]systemctl enable kube-apiserver.service && systemctl start kube-apiserver.servicesystemctl enable kube-controller-manager.service && systemctl start kube-controller-manager.servicesystemctl enable kube-scheduler.service && systemctl start kube-scheduler.service
NODE
[docker]
[vim /etc/sysconfig/docker]# Modify these options if you want to change the way the docker daemon runsOPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'if [ -z "${DOCKER_CERT_PATH}" ]; thenDOCKER_CERT_PATH=/etc/dockerfiOPTIONS='--insecure-registry registry:5000' # 添加[启动]chkconfig docker on && service docker start
[kubernets => Kubelet && Kubernets Proxy]
[vim /etc/kubernetes/config]KUBE_MASTER="--master=http://k8s-master:8080"[vim /etc/kubernetes/kubelet]KUBELET_ADDRESS="--address=0.0.0.0"KUBELET_HOSTNAME="--hostname-override=k8s-node-1"KUBELET_API_SERVER="--api-servers=http://k8s-master:8080"

[启动]systemctl enable kubelet.service && systemctl start kubelet.servicesystemctl enable kube-proxy.service && systemctl start kube-proxy.service
查看状态
[root@k8s-master ~]# kubectl -s http://k8s-master:8080 get nodeNAME STATUS AGEk8s-node-1 Ready 3mk8s-node-2 Ready 16s[root@k8s-master ~]# kubectl get nodesNAME STATUS AGEk8s-node-1 Ready 3mk8s-node-2 Ready 43s
创建覆盖网络——Flannel
[安装]:yum install flannel[配置 /etc/sysconfig/flanneld]FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"[etcd - 配置]:mk /atomic.io/network/config '{ "Network": "10.0.0.0/24" }[启动 - master]systemctl enable flanneld.service && systemctl start flanneld.serviceservice docker restartsystemctl restart kube-apiserver.servicesystemctl restart kube-controller-manager.servicesystemctl restart kube-scheduler.service[启动 - node]systemctl enable flanneld.service && systemctl start flanneld.serviceservice docker restartsystemctl restart kubelet.servicesystemctl restart kube-proxy.service
