kubernetes篇---1.在linux上以yum源方式部署kubernetes集群
部署K8S集群kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将..
部署K8S集群
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。
准备基础信息配置
准备3台如下配置的linux系统
准备信息 2核4G CentOS7.0 最小化安装 共 3 台。
节点及功能 主机名 IP
Master、etcd、registry k8s-master 192.168.23.146
Node1 k8s-node1 192.168.23.147
Node2 k8s-node2 192.168.23.148
准备配置主机名
三台机器均配置关闭防火墙
3台机器皆安装准备基础的安装包(可省略,与k8s的部署无关,因最小化系统没有vim,为了方便装了vim)
三台机器都配置/etc/hosts
部署相关安装包
部署etcd
k8s运行依赖etcd,需要先部署etcd,本文采用yum方式安装:
三台都要部署etcd
yum install etcd -y
修改信息 vim /etc/etcd/etcd.conf
etcd也可换成master节点的ip
部署master节点
安装Docker(三台都要安装docker)
yum install docker -y
配置Docker配置文件,使其允许从registry中拉取镜像。
vim /etc/sysconfig/docker
配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://ym3wu8nu.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker
systemctl status docker 安装kubernetes (3台机器都安装)
yum install kubernetes -y
配置并启动kubernetes
在kubernetes master上需要运行以下组件:
Kubernets API Server
Kubernets Controller Manager
Kubernets Scheduler
相应的要更改以下几个配置中 信息:
/etc/kubernetes/apiserver
删除serviceaccount
vim /etc/kubernetes/config
启动服务并设置开机自启动
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
systemctl status kube-scheduler.service
systemctl status kube-controller-manager.service
systemctl status kube-apiserver.service
systemctl is-active kube-apiserver.service kube-controller-manager.service kube-scheduler.service
成功启动
部署node节点
由于master、node节点有一部分文件的内容是相同的,可以选择scp或者用ansilbe把文件传输过去
/etc/etcd/etcd.conf /etc/kubernetes/config /etc/sysconfig/docker /etc/docker/daemon.json
将文件传入ansible主机上
ansible具体配置
https://blog.csdn.net/qq_42779175/article/details/98252259
使用ansible传输
准备脚本
cat service-k8s.yaml
- name: ansible
hosts: k8s
become: yes
tasks:- name: mkdir /etc/docker/
file:
path: /etc/docker
mode: 755 - name: copy
copy:
src: ‘{{ item.src }}’
dest: ‘{{ item.dest }}’
with_items:- { src: ‘docker’,dest: ‘/etc/sysconfig/docker’ }
- { src: ‘etc.conf’,dest: ‘/etc/etcd/etcd.conf’ }
- { src: ‘config’,dest: ‘/etc/kubernetes/config’ }
- { src: ‘daemon.json’,dest: ‘/etc/docker/daemon’ }
- name: mkdir /etc/docker/
接下来还需要单独在所有node节点配置kubelet文件并启动相应服务
node节点 重启 docker、etcd
在节点上测试是否连接得上etcd服务器
配置网络Flannel(所有节点都要配置)
yum install flannel -y
配置Flannel
master、node上均编辑/etc/sysconfig/flanneld
三台都是如下配置
在master节点 配置etcd中关于flannel的key
Flannel使用Etcd进行配置,来保证多个Flannel实例之间的配置一致性,所以需要在etcd上进行如下配置:(‘/atomic.io/network/config’这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)
etcdctl mk /atomic.io/network/config ‘{ “Network”: “10.0.0.0/16” }’
启动Flannel之后,需要依次重启docker、kubernete。
在master执行:
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
systemctl is-active flanneld.service docker kube-apiserver.service kube-controller-manager.service kube-scheduler.service
在node上执行:
systemctl enable flanneld.service
systemctl start flanneld.service
systemctl restart docker
systemctl restart kubelet.service
systemctl restart kube-proxy.service
systemctl is-active kube-proxy.service kube-proxy.service flanneld.service
已成功配置k8s集群
在master节点查看node节点状态
因为master节点没有配置kublet所以只有node1、node2节点。
至此kubernetes集群配置成功!!!
更多推荐
所有评论(0)