Kubernetes 简称K8s 学习

Kubernetes简单介绍

自动化容器操作的平台

​ 包括部署、管理、调度和节点集群之间扩展
​ 是谷歌2014年开源的容器编排引擎
​ 采用G0语言编写

详细架构解释

image

​ 用户通过kubectl命令来操作整个自动化容器平台
​ 整个自动化容器平台分为master(主控制器及大脑) 和node(节点)
master: 集群控制节点,对集群进行调度,接受群外用户去集群操作请求
​ 负责编排所有运行在节点上的容器
​ 由多个组件构成,用来管理和调度集群
node :集群的工作节点,运行用户业务应用容器
​ 一个node就相当于一台电脑
​ 节点接受master的指令创建pod、删除pod或者调整网络规则
​ 是集群的工作节点,运行用户业务应用容器

逻辑过程

​ 1、用户操作kubectrl,,发送请求给API Server组件

​ 2、API组件中scheduler调度员根据现有资源进行分析,找到最好的一个最合适的node节点,来运行用户所的请求的节点,将结果给到apiserver

​ 3、apiserver调用controller-manager控制管理员对pod进行管理创建nginx服务

​ 4、节点中的kubelet(包工头)通知手下人docker创建和启动一个nginx的pod

​ 5、用户访问nginx 通过kube-proxy对pod产生代理,也就是我们用户可以通过代理访问这个容器

注意:从集群环境搭建起来,所有数据会存到etcd数据库中

详细解释组件和节点

master

kube-apiserver
处理api操作
所有组件都会和apiserver交互
kube-controller-manager
控制管理集群状态
kube-scheduler:调度器
监控和分析
etcd
分布式储存系统
存放所有需要的信息

node

kubelet
监控-工地监工,确保这些PodSpecs中描述的容器处于运行状态且健康
kube-proxy
维护节点网络规则,允许从集群内部或外部的网络与Pod进行网络通信。他是实现kubernetes Service概念的重要组件
中间商
Container Runtime
运行容器的软件
容器
pod
相关容器的组合在同一主机上
同一个pod端口不能重复
通过localhost访问
是kubernets进行创建的最小创建、调度和管理的单元
使用相同的网络命名空间、IP地址
deployment
一组pod数组
帮助depioyment自动恢复失败的pod
service
提供一个或者多个pod实例的稳定访问地址
就相当于我们买东西通过第三方中间商提供的地址供外部访问
Namespace
一个集群内逻辑隔离
用于实现多租户的资源隔离 不同的Namespace中的资源可以重名。默认的命名空间是default,K8s的命名空间是kube-system。

常用命令

查看

​ kubectl get node(s)
​ kubectl get service(s)/svc
​ kubectl get deployment/deploy
​ kubectl get pod(s)

删除

​ 删除nginx service
​ kubectl delete service nginx
​ 删除nginx控制器
​ kubectl delete deployment nginx
​ 删除pod
​ kubectl delete pod nginx-6799fc88d8-glfh4(pod名字)
​ 最好逐条删除

查看日志详细信息容器

​ 查看pod详细信息
​ kubectl describe pods pod/nginx111-7d949d95f5-mgllh(pod名称)
​ 查看pod的日志
​ kubectl logs pod/nginx111-7d949d95f5-mgllh(pod名称)
​ 进入pod中的容器
​ kubectl exec -it pod名称 -- /bin/bash

部署步骤
应用步骤

制作镜像
​ 编写Dockerfile文件构建镜像
​ 从仓库拉取镜像
通过控制器管理pod
​ 把镜像放到容器中启动起来
暴露应用,让外界访问

举例

制作镜像
​ 1、kubectl create deployment nginx --image=nginx
​ 2、kubectl expose deployment nginx --port=80 --type=NodePort(有现成直接仓库拉取)
通过yaml文件部署容器化应用
​ kubectl apply -f nginx_deploy.yaml(yaml是资源清单)
​ 通过文件删除此应用
​ kubectl delete -f nginx_deploy.yaml

容器化应用

程序放在docker里部署,这个docker应用就是容器化应用
​ 外部访问kubernetes集群方法
​ 通过Service暴露
​ port
​ nodePort
​ targetPort
​ 一个管理端口
​ Service暴露服务的三种类型
​ ClusterIP1
NodePort
​ 常用需要记住
​ LoadBalancer
​ 费钱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值