[root@localhost ~]# uname -a
Linux 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-release
CentOS Linux release 7.3.1611 (Core)
[网络环境]
Master => hostnamectl --static set-hostname k8s-master
NODE1 => hostnamectl --static set-hostname k8s-node-1
//
echo '10.0.0.107 k8s-master
10.0.0.107 etcd
10.0.0.107 registry
10.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=master
ETCD_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-health
member 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379
cluster is healthy
# etcdctl -C http://etcd:2379 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379
cluster 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 runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
OPTIONS='--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"
# 删除 ServiceAccount
KUBE_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.service
systemctl enable kube-controller-manager.service && systemctl start kube-controller-manager.service
systemctl 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 runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
OPTIONS='--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.service
systemctl enable kube-proxy.service && systemctl start kube-proxy.service
查看状态
[root@k8s-master ~]# kubectl -s http://k8s-master:8080 get node
NAME STATUS AGE
k8s-node-1 Ready 3m
k8s-node-2 Ready 16s
[root@k8s-master ~]# kubectl get nodes
NAME STATUS AGE
k8s-node-1 Ready 3m
k8s-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.service
service docker restart
systemctl restart kube-apiserver.service
systemctl restart kube-controller-manager.service
systemctl restart kube-scheduler.service
[启动 - node]
systemctl enable flanneld.service && systemctl start flanneld.service
service docker restart
systemctl restart kubelet.service
systemctl restart kube-proxy.service