云计算之 docker 集群管理_ K8S_01_安装

Kubernetes :两个基础组件,master \ node



kubernetes 分为两部分
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