Kubernates 集群组件
- Etcd:在 Master 节点上,一个高可用的 K/V 键值对存储和服务发现系统
- Kube-apiserver:在 Master 节点上,实现跨主机的容器网络通信
- Kube-controller-manager:在 Master 节点上,确保集群服务
- Kube-scheduler:在 Master 节点上,调度容器,分配到 Node 节点上
- Kube-proxy:在 Node 节点上,提供网络代理服务
- Kubelet:在 Node 节点上,按照配置文件中定义的容器规格启动容器
- Flannel:在 Node 节点上,实现跨主机的容器网络的通信
使用两台 Hyper-V 虚拟机进行安装,系统为 CentOS 7.7.1908,Master、Node 个一台。
关闭防火墙和 Selinx
否则与 Docker 容器的放火请规则冲突
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
检查状态
firewall-cmd --state
修改 Hosts
vi /etc/hosts192.168.1.103 k8s-master192.168.1.103 etcd192.168.1.103 registry192.168.1.104 k8s-nodecat /etc/hosts
Master 节点
安装Etcd 和 Kubernates-master
yum -y install etcd kubernetes-master
编辑 /etc/etcd/etcd.conf 文件,设置 Etcd 监听客户端的 URLS
vi /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS=”http://0.0.0.0:2379“
编辑 /etc/kubernetes/apiserver 文件,设置 Kube-api 的地址与端口并删除 ServiceAccount
vi /etc/kubernetes/apiserverKUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"KUBE_API_PORT="--port=8080"KUBELET_PORT="--kubelet-port=10250"KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
安装 Docker
yum install docker -y
启动 etcd、kube-apiserver、kube-controller-manager、kube-scheduler 等服务,并设置开机启动
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler;dosystemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES;done
在 etcd 中定义 flannel 网络
etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
Node 节点
安装 Kubernetes Node 和 Flannel 组件应用
yum -y install kubernetes-node flannel
编辑 /etc/sysconfig/flanneld 文件,为 Flannel 网络指定 Etcd 服务
vi /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS=”http://192.168.0.103:2379“
编辑 /etc/kubernetes/config 文件,指定 Kube Master 地址
vi /etc/kubernetes/config
KUBE_MASTER=”—master=http://192.168.1.103:8080“
编辑 /etc/kubernetes/kubelet 文件,配置 Node 节点信息
vi /etc/kubernetes/kubeletKUBELET_ADDRESS="--address=0.0.0.0"KUBELET_PORT="--port=10250"KUBELET_HOSTNAME="--hostname-override=192.168.0.104" # 修改为 Node 的 IPKUBELET_API_SERVER="--api-servers=http://192.168.0.103:8080" # 指定 Master 节点的 API Server
启动 Kube-proxy、Kubelet、Docker、Flanneld 等服务,并设置开机启动
for SERVICES in kube-proxy kubelet docker flanneld;dosystemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES;done
