Linux--Kubernetes入门

一、Kubernetes简介

1. Kubernetes简介

  •     在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用。
  •     Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。
  •     Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。
  •     Kubernetes的好处:
  •     隐藏资源管理和错误处理,用户仅需要关注应用的开发。
  •     服务高可用、高可靠。
  •     可将负载运行在由成千上万的机器联合而成的集群中。
     

2. kubernetes设计架构 

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。

Kubernetes主要由以下几个核心组件组成:

  • etcd:保存了整个集群的状态
  • apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
  • controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
  • scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
  • kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
  • Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
  • kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡

除了核心组件,还有一些推荐的Add-ons:

  • kube-dns:负责为整个集群提供DNS服务
  • Ingress Controller:为服务提供外网入口
  • Heapster:提供资源监控
  • Dashboard:提供GUI
  • Federation:提供跨可用区的集群
  • Fluentd-elasticsearch:提供集群日志采集、存储与查询

Kubernetes设计理念和功能其实就是一个类似Linux的分层架构:

  •     核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
  •     应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)
  •     管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
  •     接口层:kubectl命令行工具、客户端SDK以及集群联邦
  •     生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴
  •     Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等
  •     Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

二、Kubernetes部署

关闭节点的selinux和iptables防火墙 

所有节点(server1、2、3)部署docker引擎

yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service

查看docker信息 :

docker info

消除docker中存在的警告,将bridge-nf-call-iptables和bridge-nf-call-ip6tables开启

vim /etc/sysctl.conf
###
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
###
sysctl --system   # 生效

可以看到,警告已经消除,可正常使用。
编辑harbor配置文件 :

vim harbor.yml

运行检测环境 :

./install.sh

可以看到,缺少 docker-compose[单台主机上维护多个容器] 环境
下载并搭建docker-compose环境 :

mv docker-compose-Linux-x86_64-1.24.1 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

三个节点docker-ce的下载和安装

这里可以使用之前自己的docker,也可以使用清华或者阿里的docker。
安装系统工具:

yum install -y yum-utils device-mapper-persistent-data lvm2

部署docker仓库 :

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce :

下载container-selinux并安装 :

将安装包上传到共享仓库上 :

更新仓库repo数据 :

在k8s1将docker.repo复制给k8s3和k8s4 

scp docker-ce.repo k8s3:/etc/yum.repos.d/

在k8s3和k8s4安装docker 

 yum install -y docker-ce

启用,使其 docker info 正常使用 :

vim /etc/sysctl.conf
###
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
###
sysctl --system   # 生效

启动并设置为开机自启 

systemctl enable --now docker.service

kubernetes部署 

官方网站:https://kubernetes.io/zh/docs/setup/production-environment/container-runtimes/#docker

安装部署kubernetes前系统环境的配置

设置docker守护程序[三个节点都需要]
修改k8s2中docker守护程序

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF


重点:native.cgroupdriver 修改为 systemd 模式
原先的模式为:在这里插入图片描述
重启docker 

systemctl restart docker.service

可以看到,Cgroup Driver 已经修改为 systemd 的模式 

将文件复制到k8s3和k8s4上,并重启docker 

禁用swap[三个k8s集群节点都需要] 

swapoff -a
vim /etc/fstab
###
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
###

部署kubernetes

安装Docker-ce
这个前面已经进行了详细的介绍
设置仓库[三个节点均设置]

vim /etc/yum.repos.d/k8s.repo
###
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7- x86_64/
enabled=1
gpgcheck=0
###

安装软件包[三个节点均安装] 

yum install -y kubelet kubeadm kubectl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值