kubernetes篇---1.在linux上以yum源方式部署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
在这里插入图片描述kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第1张图片

准备配置主机名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三台机器均配置关闭防火墙
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第2张图片
3台机器皆安装准备基础的安装包(可省略,与k8s的部署无关,因最小化系统没有vim,为了方便装了vim)
在这里插入图片描述
三台机器都配置/etc/hosts

kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第3张图片

部署相关安装包

部署etcd
  k8s运行依赖etcd,需要先部署etcd,本文采用yum方式安装:
三台都要部署etcd
yum install etcd -y

kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第4张图片
修改信息 vim /etc/etcd/etcd.conf
etcd也可换成master节点的ipkubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第5张图片kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第6张图片kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第7张图片

部署master节点

安装Docker(三台都要安装docker)

yum install docker -y

kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第8张图片
配置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篇---1.在linux上以yum源方式部署kubernetes集群_第9张图片安装kubernetes (3台机器都安装)
yum install kubernetes -y
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第10张图片
配置并启动kubernetes
在kubernetes master上需要运行以下组件:
    Kubernets API Server
    Kubernets Controller Manager
    Kubernets Scheduler
相应的要更改以下几个配置中 信息:
/etc/kubernetes/apiserver
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第11张图片
删除serviceaccount
在这里插入图片描述
vim /etc/kubernetes/config
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第12张图片
启动服务并设置开机自启动
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

成功启动
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第13张图片

部署node节点

由于master、node节点有一部分文件的内容是相同的,可以选择scp或者用ansilbe把文件传输过去
/etc/etcd/etcd.conf /etc/kubernetes/config /etc/sysconfig/docker /etc/docker/daemon.json
将文件传入ansible主机上
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第14张图片
ansible具体配置
https://blog.csdn.net/qq_42779175/article/details/98252259
使用ansible传输
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第15张图片
准备脚本
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’ }
        kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第16张图片
        kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第17张图片

kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第18张图片

接下来还需要单独在所有node节点配置kubelet文件并启动相应服务
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第19张图片
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第20张图片
node节点 重启 docker、etcd
kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第21张图片
在节点上测试是否连接得上etcd服务器在这里插入图片描述

配置网络Flannel(所有节点都要配置)

yum install flannel -y

kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第22张图片
配置Flannel
  master、node上均编辑/etc/sysconfig/flanneld
  三台都是如下配置
  kubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第23张图片
 在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.servicekubernetes篇---1.在linux上以yum源方式部署kubernetes集群_第24张图片

在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篇---1.在linux上以yum源方式部署kubernetes集群_第25张图片
至此kubernetes集群配置成功!!!

你可能感兴趣的:(kubernetes,kubernetes,docker,linux)