首先基础环境:
[root@k8s ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@k8s ~]# tail -2 /etc/hosts 10.0.0.151 k8s-master 10.0.0.150 k8s-node-1
首先两台机器全部配置k8s yum源:
cat <<EOF > /etc/yum.repos.d/virt7-docker-common-release.repo [virt7-docker-common-release] name=virt7-docker-common-release baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/ gpgcheck=0 EOF
由于两台机器是使用的阿里云的ecs 所以这里就不再重复配置阿里yum源,大家可以根据自己实际情况自行配置。
更新本地镜像源
yum clean all
yum makecache
关闭 SELinux:
setenforce 0
关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
-
安装 Kubernetes 环境 (Master)
yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd flannel 编辑本地hosts文件:
cat << EOF >> /etc/hosts
192.168.102.130 k8s-master
192.168.102.131 k8s-node-1
192.168.102.132 k8s-node-2
EOF
配置文件修改:
vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://k8s-master:8080"
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_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
vim /etc/kubernetes/apiserver
需删除KUBE_ADMISSION_CONTROL项ServiceAccount参数
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" KUBE_API_PORT="--port=8080" KUBELET_PORT="--kubelet-port=10250" KUBE_ETCD_SERVERS="--etcd-servers=http://k8s-master: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=""
备注:如果需要修改映射的端口范围可以修改 KUBE_API_ADDRESS参数,如下:
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0 --service-node-port-range=1-65535"
启动etcd
systemctl start etcd
systemctl enable etcd
创建网络
etcdctl mkdir /kube-centos/network
etcdctl mk /kube-centos/network/config "{\"Network\":\"172.30.0.0/16\",\"SubnetLen\":24,\"Backend\":{\"Type\":\"vxlan\"}}"
vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://k8s-master:2379" FLANNEL_ETCD_PREFIX="/kube-centos/network"
服务启动:
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler flanneld; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done
-
安装 Kubernetes 环境 (Minion/Node):
hosts配置
vim /etc/hosts 同Master配置
yum -y install --enablerepo=virt7-docker-common-release kubernetes flannel
vi /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://k8s-master:8080"
vi /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=k8s-node-1" KUBELET_API_SERVER="--api-servers=http://k8s-master:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
vi /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://k8s-master:2379" FLANNEL_ETCD_PREFIX="/kube-centos/network"
服务启动:
for SERVICES in kube-proxy kubelet flanneld docker; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done
配置参数:
kubectl config set-cluster default-cluster --server=http://k8s-master:8080
kubectl config set-context default-context --cluster=default-cluster --user=default-admin
kubectl config use-context default-context
注意:尽量开启iptables的转发策略方式如下
vim /etc/sysctl.conf 或者(centos7)vim /usr/lib/sysctl.d/00-system.conf 添加一行 net.ipv4.ip_forward=1 #之后reboot系统