部署kubernetes
环境准备
K8S 分为 master 和 slave 两类角色。
环境说明如下表:
对象 | 版本 | IP | 备注 |
---|---|---|---|
k8s-master | centos7 | XX.XX.XX.179 | K8S的master所在主机 |
etcd-server | centos7 | XX.XX.XX.179 | etcd服务所在主机,与master在同一机器 |
k8s-slave | centos7 | XX.XX.XX.182 | K8S节点所在主机 |
更新yum
登录 k8s-master 主机
yum update -y
创建yum源
注意:k8s-master,k8s-slave都要按照以下操作创建yum源
登录master/slave主机:
vi 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
安装服务
执行以下命令,安装kubernetes和etcd。
yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd
1.修改文件/etc/kubernetes/config(所有节点)
注意,master和slave主机都要修改
指定master主机的ip,文件内容如下:
$ cat /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://XX.XX.XX.179:8080"
禁用防火墙
systemctl disable iptables-services firewalld
systemctl stop iptables-services firewalld
在master节点配置kubernetes服务
1.修改配置文件/etc/etcd/etcd.conf,确保etcd监听所有地址。内容如下:
$ cat /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"
2.修改配置文件/etc/kubernetes/apiserver
cat /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://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.修改配置文件/etc/kubernetes/controller-manager,定义slave主机ip地址
KUBELET_ADDRESSES="--machines=XX.XX.XX.182"
在master主机上,启动服务
执行如下命令,批量启动服务
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
slave节点配置
注意:slave节点主机,要安装docker,docker版本1.7以上
yum 安装kubernetes
yum -y install --enablerepo=virt7-docker-common-release kubernetes flannel
1.修改kubernetes配置文件,指定master。
$ cat /etc/kubernetes/config
KUBE_MASTER="--master=http://XX.XX.XX.179:8080"
2.配置kubelet服务。
$ cat /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=XX.XX.XX.182"
KUBELET_API_SERVER="--api-servers=http://XX.XX.XX.179:8080"
在slave主机上,启动服务
for SERVICES in kube-proxy kubelet docker flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
验证
现在登陆master,确认slave的状态
$ kubectl get nodes
NAME LABELS STATUS AGE
10.16.93.182 kubernetes.io/hostname=XX.XX.XX.182 Ready 1h