K8S -- day01

一切皆资源

# 主要功能
1. 服务的自动发现和负载均衡
2. 自愈 self-healing
3. 滚动升级和回滚  automated 
4. 水平扩展,弹性伸缩
# 理解
开源的容器管理平台
kubernates
docker swarm 
messor marathon 
# k8s 核心组件
1. etcd  保存整个集群的状态
2. apiserver  提供资源操作的唯一入口,提供认证,授权,访问控制,API注册和发现等机制
2. controller manager 维护集群状态
4. scheduler 资源调度, 按预定的调整策略将POD调度
5. kubelet 容器的生命周期
6. container runtime  负责镜像管理以及pod和容器的运行
7. kube-proxy 负责为service 提供cluster 内部的服务发现和负载均衡

# 附加组件
1. kube-dus  为集群提供DNS服务
2. Ingress Controller 为服务提供外网入口 (7层负载均衡)
3. Heapster 提供资源监控 (pod 资源消耗)
4. Dashboard
5. Fluentd-elasticsearch 提供日志采集,存储和查询
EFK (elasticsearch,Fluentd,kibana) -- 类似ELK

# 跨主机通信插件
flannel, weavenet. 

1603029782318

Pod -- 最小的资源

# pod 运行容器的载体, 一个pod可以挂多个容器,小于4个
# yaml 文件
kind:Pod
metadate:
    name: nginx
    labels:
        app:web
spec:
    contains:  # 可以写多个!!!
        -name:nginx  
        image: ....nginx:1.12
        ports:
            containerPort:80 
        -name: ......
        command: ....
            
1. 创建资源 -- nginx pod
# 创建
-- 启动两个容器???  
kubectl create -f k8s_pod.yaml
# 查看资源信息 
kubectl get pods -o wide / get pod nginx 
# 查看详细信息
kubectl describe pod nginx
#  删除
kubectl delete pod nginx / delete pod --all
# 查看通用组件
kubectl get componentstatus
# 查看节点
kubectl get nodes

1603031089682

Question: 创建一个POD,启动两个容器???

# nginx pod
pod 用来实现k8s 高级功能!!!
普通nginx 和pod绑定

1603031958852

RC - replication conroller

# 通过RC创建pod -- 复制容器,保证容器高可用
# 副本控制器 -- 高可用
1. nginx-rc # 副本数2
nginx-rc.yaml 文件
kind: ReplicationController # 另一种资源  
    labels:
        app: web # rc 通过标签控制pod,标签名检查数量
# 创建资源
kubectl create -f nginx-rc.yaml
# 查看资源
kubectl get rc
kubectl get pods -- 显示rc创建的pod
# 编辑配置文件
kubectl edit rc
kubectl edit rc myweb

# rc 特点
1. 通过标签控制pod

rc - 滚动升级

# delete myweb, add mywebV2 -- 例 升级naginx1.15
首先备份配置文件,用来快速回滚
1. 升级
kubectl rolling-update myweb -f 配置文件 --update-period=5
5秒删除一个pod
2. 回滚
kubectl rolling-update mywebv2 -f nginx-rc.yaml --update-period=1s

修改配置文件

1603034405214

容器外界能访问 -- service 资源 (内部负载均衡)

# k8s ip地址类型
1. pod:172.16.0.0/16
2. clusterIP 配置文件
3. nodeIp 宿主机ip地址

# pod ip不定,高可用

# 服务(pod里面的nginx)的发现和自动注册 -- 见下图
-- 和nginx做负载均衡类型,但是自动发现节点

!!! service VIP(自动发现,负载均衡) 关联pod通过 标签

1603034934278

K8S 资源类型

1. pod
2. rc
3. service

rc + svc

应用高可用,并被外界访问!!!

命令集

# 查看容器的IP地址
docker inspect dockerID
posted on 2020-10-25 23:20  Afrafre  阅读(123)  评论(0)    收藏  举报