Kubernetes :两个基础组件,master \ nodekubernetes 分为两部分 1、master(管理节点)3个模块 apiserver:接收 用户请求,根据 scheduler 的调度,指派node 节点上的 kubelet 干活,构建资源。 scheduler:调度器,资源调度 controller-manager:负责node的故障处理,node的扩容缩容。 2、node(计算,数据存储节点)两个模块 kubelet:负责所有后端计算节点上的资源,创建,删除,状态监控等的管理。 proxy:配合 controller-manager ,发现服务 K8s中最小的逻辑单元:pod 也是一个容器,由replication Controller(简称RC)创建 service:pod的访问代理抽象,负载层 replication Controller :pod的复制抽象,提供服务的高可用。 +++++++++ 新版本中 deloyment 替代RC ++++++++ K8S 安装 #一、K8S快速部署 #1. 节点规划 k8s_matser 192.168.20.88 k8s_node1 192.168.20.89 k8s_node2 192.168.20.90 #2. 所有节点安装docker环境及依赖 ##2.1 上传docker-k8s.tar软件到各节点/opt,并解压 K8S,对docker的版本是有认证的,不能随便安装docker 版本。 ##2.2 进入目录进行安装 (三个节点都要安装docker) cd /opt/ wget http://106.12.88.74/softdown/k8s/docker-k8s.tar tar xf docker-k8s.tar cd pkg yum localinstall *.rpm -y systemctl start docker systemctl enable docker 3、上传或下载 k8s-master.zip 到 192.168.20.88(k8s_master) /opt cd /opt wget http://106.12.88.74/softdown/k8s/k8s-master.zip unzip k8s-master.zip cd k8s-master/ yum localinstall *.rpm #4. node节点软件安装 上传k8s-node到两个node节点/opt 并解压 ,安装。 cd /opt wget http://106.12.88.74/softdown/k8s/k8s-node.tar tar xf k8s-node.tar yum localinstall *.rpm -y cd /opt/k8s-node yum localinstall -y *.rpm #5. 配置主节点ETCD (在k8s_master操作)也可以,单独找一台机器安装,ETCD也支持集群模式。 ETCD 里面保存了,整个k8s集群里面,所有服务的配置信息,类似于mongodb ----> config server ETCD 相当于是一个Redis数据库,也是键值 存储。 vim /etc/etcd/etcd.conf (主要改监听地址和端口) ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
ETCD_ADVERTISE_CLIENT_URLS="http://92.168.20.88:2379"
重启服务并测试 systemctl restart etcd.service systemctl enable etcd.service 测试ETCD etcdctl set name shanghai ## set 一个键值 etcdctl get name ## get 这个键值
能get 到值 ,就说明 ETCD能正常用。 #6. 配置Master节点(在k8s_master操作) vim /etc/kubernetes/apiserver KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" KUBE_API_PORT="--port=8080" KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.20.88:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
![]()
![]()
ServiceAccount, 是在外网去获取红帽的证书的一个帐号,获取不到,直接把这个删掉就可以了。 vim /etc/kubernetes/config ##这个在master 上面可以不用改,这个是客户端上面要改的 重启服务 systemctl enable kube-apiserver.service systemctl start kube-apiserver.service systemctl enable kube-controller-manager.service systemctl start kube-controller-manager.service systemctl enable kube-scheduler.service systemctl start kube-scheduler.service #7. node节点配置(k8s_nod1----> 20.89 k8s_node2 -----> 20.90 操作) vim /etc/kubernetes/config KUBE_MASTER="--master=http://192.168.20.88:8080"
vim /etc/kubernetes/kubelet KUBELET_HOSTNAME="--hostname-override=192.168.20.89" ##另一个node2 这里应该是node2的IP KUBELET_API_SERVER="--api-servers=http://192.168.20.88:8080"
重启服务 systemctl enable kubelet.service systemctl start kubelet.service systemctl enable kube-proxy.service systemctl start kube-proxy.service #8.验证节点状态(在k8s_master 192.168.20.88 上面运行) kubectl get nodes
#9. 所有节点配置flannel网络(所有的网络都是通过flannel来管理,不需要管它。)所有节点安装 yum install flannel -y sed -i 's#http://127.0.0.1:2379#http://192.168.20.88:2379#g' /etc/sysconfig/flanneld ##master和node 服务器都执行 master节点:(192.168.20.88) etcdctl mk /atomic.io/network/config '{"Network": "172.16.0.0/16"}' 以后k8s里面的容器的地址,都是172.16.0.0/16这个段的 确认是否改成功: etcdctl get /atomic.io/network/config
systemctl enable flanneld.service systemctl start flanneld.service systemctl restart docker systemctl restart kube-apiserver.service systemctl restart kube-controller-manager.service systemctl restart kube-scheduler.service ifconfig -a
![]()
node节点: (两个node节点都要重启服务) systemctl enable flanneld.service systemctl start flanneld.service systemctl restart docker systemctl restart kubelet.service systemctl restart kube-proxy.service #10. 配置master为镜像仓库 #master节点 vim /etc/sysconfig/docker OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.20.88:5000' 或者PTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https://uoggbpok.mirror.aliyuncs.com --insecure-registry=192.168.20.88:5000'
保存,退出。重启docker systemctl restart docker docker pull nginx ##拉取镜像,网络不好,可以多次运行。
配置本地registry (master节点) docker tag nginx 192.168.20.88:5000/dfsc/nginx:v1 docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
测试镜像仓库可不可以用。 docker push 192.168.20.88:5000/dfsc/nginx:v1
#两个node节点(20.89 20.90)也要修改docker 配置文件 vim /etc/sysconfig/docker OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry=192.168.20.88:5000'
保存,退出。重启docker systemctl restart docker 两个节点上面,测试镜像可不可以拉取。 docker pull 192.168.20.88:5000/dfsc/nginx:v1