这篇文章介绍了如何快速部署一套 Kubernetes 集群, 下面就快速开始吧!
准备工作
- // 关闭防火墙
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- // 关闭 selinux, 修改 / etc/selinux/config
- SELINUX=disabled
机器部署规划
主机 | IP | 部署组件 |
---|---|---|
master 主节点 | 192.168.199.206 | etcd、kube-apiserver、kube-controller-manager、kube-scheduler |
node1 子节点 | 192.168.199.159 | kubelet、kube-proxy、docker |
node2 子节点 | 192.168.199.175 | kubelete、kube-proxy、docker |
k8s 组件采用 yum 安装的方式, 快速安装.
Master 节点
- // 安装 etcd
- [root@206 ~]# yum install -y etcd
- // 修改 / etc/etcd/etcd.conf 配置文件
- [root@206 ~]# vim /etc/etcd/etcd.conf
- ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
- ETCD_ADVERTISE_CLIENT_URLS="http://192.168.199.206:2379"
- // 配置 etcd 内网信息
- [root@206 ~]# etcdctl set /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
ps: 其中网络号 172.17.0.0/16 与 docker 中的 docker0 网络一致 (若不一致, 可修改 docker0 网络或者配置上述 etcd 网络);
atomic.io 与下面的 Flannel 配置中的 FLANNEL_ETCD_PREFIX 对应;
- // 运行 etcd 服务
- [root@206 ~]# systemctl start etcd
- [root@206 ~]# systemctl enbale etcd
- // 安装 kubernetes-master
- [root@206 ~]# yum install -y kubernetes-master
- // 修改 / etc/kubernetes/apiserver 配置文件
- [root@206 ~]# vim /etc/kubernetes/apiserver
- KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
- KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.199.206:2379"
- // 修改 / etc/kubernetes/config 配置文件
- [root@206 ~]# vim /etc/kubernetes/config
- KUBE_MASTER="--master=http://192.168.199.206:8080"
- // 运行 master 服务
- [root@206 ~]# systemctl start kube-apiserver kube-scheduler kube-controller-manager
- [root@206 ~]# systemctl enable kube-apiserver kube-scheduler kube-controller-manager
- // 测试服务, 若输出以下数据, 则服务正常.
- [root@206 ~]# curl -l http://192.168.199.206:8080
- {
- "paths": [
- "/api",
- "/api/v1",
- "/apis",
- "/apis/apps",
- "/apis/apps/v1beta1",
- "/apis/authentication.k8s.io",
- "/apis/authentication.k8s.io/v1beta1",
- "/apis/authorization.k8s.io",
- "/apis/authorization.k8s.io/v1beta1",
- "/apis/autoscaling",
- "/apis/autoscaling/v1",
- "/apis/batch",
- "/apis/batch/v1",
- "/apis/batch/v2alpha1",
- "/apis/certificates.k8s.io",
- "/apis/certificates.k8s.io/v1alpha1",
- "/apis/extensions",
- "/apis/extensions/v1beta1",
- "/apis/policy",
- "/apis/policy/v1beta1",
- "/apis/rbac.authorization.k8s.io",
- "/apis/rbac.authorization.k8s.io/v1alpha1",
- "/apis/storage.k8s.io",
- "/apis/storage.k8s.io/v1beta1",
- "/healthz",
- "/healthz/ping",
- "/healthz/poststarthook/bootstrap-controller",
- "/healthz/poststarthook/extensions/third-party-resources",
- "/healthz/poststarthook/rbac/bootstrap-roles",
- "/logs",
- "/metrics",
- "/swaggerapi/",
- "/ui/",
- "/version"
- ]
Node 节点 (159 和 175 安装方法一样)
- // 安装 docker
- [root@159 ~]# yum install -y docker
- // 安装 flannel
- [root@159 ~]# yum install -y flannel
- // 修改 / etc/sysconfig/flannel 配置文件
- [root@159 ~]# vim /etc/sysconfig/flannel
- FLANNEL_ETCD_ENDPOINTS="http://192.168.199.206:2379"
- // 安装 kubernetes-note
- [root@159 ~]# yum install -y kubernetes-node
- // 修改 / etc/kubernetes/config 配置文件
- [root@159 ~]# vim /etc/kubernetes/config
- KUBE_MASTER="--master=http://192.168.199.206:8080"
- // 修改 / etc/kubernetes/kubelet 配置文件
- [root@159 ~]# vim /etc/kubernetes/kubelet
- KUBELET_HOSTNAME="--hostname-override=192.168.199.159"
- KUBELET_API_SERVER="--api-servers=http://192.168.199.206:8080"
- // 运行服务
- systemctl enable kubelet kube-proxy
- systemctl start kubelet kube-proxy
在 Master 机器上管理 Node 节点
- [root@206 ~]# kubectl get nodes
- NAME STATUS AGE
- 192.168.199.159 Ready 32m
- 192.168.199.175 Ready 4m
来源: http://www.bubuko.com/infodetail-2637256.html