1.示例环境
3台虚机(系统centos7.X)
1台作为master(主控节点)
2台作为node(工作节点)
master:192.168.42.128
node:192.168.42.130,192.168.42.131
2. 初始化环境
#关闭seliux、firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux setenforce 0 systemctl stop firewalld systemctl disable firewalld
#修改时区
timedatectl set-timezone Asia/Shanghai
#修改主机名
hostnamectl set-hostname mast
hostnamectl set-hostname node01
hostnamectl set-hostname node02
#时间同步
yum -y install ntp
systemctl enable ntpd
systemctl restart ntpd
#添加kubernetes阿里云yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
#清理yum缓存并生成新的缓存
yum clean all
yum makecache
3.部署master节点
3.1安装etcd和Kubernetes
yum -y install etcd kubernetes
3.2 修改etcd配置
# cat /etc/etcd/etcd.conf |grep -Ev '^[[:space:]].*|^#' ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" #修改点 ETCD_NAME="default" ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
3.3 修改Kubernetes API Server配置
# cat /etc/kubernetes/apiserver |grep -Ev '^[[:space:]].*|^#' KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" #修改点 KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota" KUBE_API_ARGS=""
3.4 启动etcd、kube-apiserver、kube-controller-manager、kube-scheduler服务
#cat startservice.sh for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done
3.5 在etcd中配置flannel网络
#设置网段 etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}' #查看设置是否成功 etcdctl get /atomic.io/network/config
4.配置node节点
yum -y install flannel kubernetes
4.1 修改flannel配置
cat /etc/sysconfig/flanneld |grep -Ev '^[[:space:]].*|^#' #flannel配置 FLANNEL_ETCD_ENDPOINTS="http://192.168.42.128:2379" #mast节点ip FLANNEL_ETCD_PREFIX="/atomic.io/network"
4.2修改Kubernetes配置
cat /etc/kubernetes/config |grep -Ev '^[[:space:]].*|^#' #Kubernetes配置 KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.42.128:8080" #mastIP:8080 8080端口是 kube-apiservice服务的端口
4.3 修改kubelet配置
KUBELET_ADDRESS="--address=0.0.0.0" KUBELET_PORT="--port=10250" KUBELET_HOSTNAME="--hostname-override=192.168.42.131" #node节点自己的ip KUBELET_API_SERVER="--api-servers=http://192.168.42.128:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
4.4启动kube-proxy,kubelet,docker,flanneld服务:
#cat startservice.sh for SERVICES in kube-proxy kubelet docker flanneld; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done
5.验证结果
mast节点上输入
kubectl get nodes
[root@mast home]# kubectl get nodes
NAME STATUS AGE
192.168.42.130 Ready 1d
192.168.42.131 Ready 1d