Kubernetes(1)部署集群、Pod管理、资源清单、控制器

本文介绍了Kubernetes的部署步骤,包括禁用节点交换分区、配置Docker、安装kubeadm和flannel,以及kubectl命令的使用。接着详细讲解了Pod的创建、扩容缩容和删除,以及资源清单的管理。此外,还探讨了Pod的生命周期和不同类型的控制器,如Deployment、DaemonSet、Job和CronJob,帮助理解Kubernetes如何管理和调度容器化应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Kubernetes简介

Kubernetes的核心组件:

二、Kubernetes部署

 禁用每个节点交换分区

配置docker 

镜像配置 

 安装部署软件kubeadm

 安装flannel网络组件

 kubectl命令

三、Pod管理

 pod的创建

 Pod扩容与缩容

​ 删除pod

四、资源清单

​五、 Pod生命周期

六、控制器

Pod 的分类

控制器类型:

Deployment控制器

DaemonSet 控制器

Job控制器

​ CronJob控制器


一、Kubernetes简介

        kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源 的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的 应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。

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

Kubernetes的好处:

  • 隐藏资源管理和错误处理,用户仅需要关注应用的开发。
  • 服务高可用、高可靠。
  • 可将负载运行在由成千上万的机器联合而成的集群中。

Kubernetes的核心组件:

核心组件名称 含义
etcd 保存了整个集群的状态,一般把所有的集群信息都存放到etcd当中,etcd不属于Kubernetes的某一个部分,而是单独集群部署的,apiserver是它唯一的入口,可以直接访问etcd。
apiServer 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
Controller Manager 是一个控制器,负责维护集群的状态,比如Pod的故障检测、自动扩展、滚动更新等
Scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
Kubelet 负责维护容器的生命周期,apiserver创建Pod,Scheduler将Pod调度到符合要求的Node节点上,该节点上的Kubelet就会去运行Pod以及Docker,Pod的存储以及网络都是Kubelet进行管理的
Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI)
Kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡

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

二、Kubernetes部署

注意:需要关闭节点的selinux和iptables防火墙,所有节点部署docker引擎。

官网地址:Kubernetes 文档 | Kubernetes

部署参考文档:安装 kubeadm | Kubernetes

清除之前的设置: 

[root@server2 ~]# docker stack rm web
[root@server2 ~]# docker service ls
ID        NAME      MODE      REPLICAS   IMAGE     PORTS
[root@server2 ~]# docker swarm leave  --force 
[root@server2 ~]# cd /etc/systemd/system/docker.service.d/
[root@server2 docker.service.d]# rm -fr 10-machine.conf 
[root@server2 docker.service.d]# ls
[root@server2 docker.service.d]# systemctl daemon-reload 
[root@server2 docker.service.d]# systemctl restart docker

[root@server4 ~]# docker swarm leave
Node left the swarm.

 禁用每个节点交换分区

[root@server2 ~]# swapoff -a
[root@server2 ~]# vim /etc/fstab 

配置docker 

[root@server2 ~]# cd /etc/docker/
[root@server2 docker]# ls
ca.pem  certs.d  daemon.json  key.json  plugins  server-key.pem  server.pem
[root@server2 docker]# vim daemon.json 
[root@server2 docker]# systemctl daemon-reload 
[root@server2 docker]# systemctl restart docker
[root@server2 docker]# docker info

 

  每个节点都需要开启docker

[root@server2 docker]# cd /etc/docker/
[root@server2 docker]# ls
ca.pem  certs.d  daemon.json  key.json  plugins  server-key.pem  server.pem
[root@server2 docker]# rm -f *.pem
[root@server2 docker]# ls
certs.d  daemon.json  key.json  plugins
[root@server2 docker]# systemctl enable docker.socket 
[root@server2 docker]# systemctl enable docker.service
[root@server2 docker]# systemctl stop docker.socket 
[root@server2 docker]# systemctl stop docker
[root@server2 docker]# systemctl start docker.socket 
[root@server2 docker]# systemctl start docker.service 
[root@server2 docker]# docker info
[root@server2 docker]# scp daemon.json server3:/etc/docker/
[root@server2 docker]# scp daemon.json server4:/etc/docker/

同理,在server3中进行相同的操作:

[root@server3 ~]# cd /etc/docker/
[root@server3 docker]# ls
ca.pem  certs.d  daemon.json  key.json  server-key.pem  server.pem
[root@server3 docker]# rm -f *.pem
[root@server3 docker]# ls
certs.d  daemon.json  key.json
[root@server3 docker]# cd /etc/sysctl.d/
[root@server3 sysctl.d]# ls
99-sysctl.conf  docker.conf
[root@server3 sysctl.d]# scp docker.conf server4:/etc/sysctl.d/

[root@server4 ~]# cd /etc/sysctl.d/
[root@server4 sysctl.d]# ls
99-sysctl.conf  docker.conf
[root@server4 sysctl.d]# sysctl --system

镜像配置 

kubernetes镜像-kubernetes下载地址-kubernetes安装教程-阿里巴巴开源镜像站

[root@server2 yum.repos.d]# vim k8s.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

[root@server2 yum.repos.d]# scp k8s.repo server3:/etc/yum.repos.d/  
[root@server2 yum.repos.d]# scp k8s.repo server4:/etc/yum.repos.d/

 安装部署软件kubeadm

[root@server2 yum.repos.d]# yum install -y kubeadm kubelet kubectl  ##每个节点都安装
[root@server2 yum.repos.d]# systemctl enable --now kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
[root@server2 yum.repos.d]# ssh-keygen 
[root@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值