Kubernetes结构和Service

目录:

  1. Kubernetes结构图
  2. 基于K8S,创建企业CentOS6.x虚拟机并安装nginx
  3. Kubernetes集群架构图
  4. Kubernetes Service概念
Kubernetes结构图

在这里插入图片描述



基于K8S,创建企业CentOS6.x虚拟机
  1. 使用UI创建
    在这里插入图片描述

  2. 使用yaml文件创建

# 创建
[root@localhost ~]# kubectl create -f nginx.yaml
# 删除
[root@localhost ~]# kubectl delete -f nginx.yaml

nginx.yaml(示例)

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: sh-nginx-v1
  namespace: default
  labels:
    k8s-app: sh-nginx-v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      k8s-app: sh-nginx-v1
  template:
    metadata:
      labels:
        k8s-app: sh-nginx-v1
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
        scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
    spec:
      containers:
      - name: sh-nginx-v1
        image: docker.io/nginx
        resources:
          # keep request = limit to keep this container in guaranteed class
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
  1. 安装nginx
    如遇报错:Cannot retrieve metalink for repository: epel. Please verify its path and try again
    按此博客操作
    https://www.cnblogs.com/dadong616/p/5062727.html
[root@sh-centos6-v1-467070287-nfkbr ~]# yum install epel-release -y
[root@sh-centos6-v1-467070287-nfkbr ~]# yum install nginx -y
  1. 启动nginx服务
[root@sh-centos6-v1-467070287-nfkbr yum.repos.d]# service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]
[root@sh-centos6-v1-467070287-nfkbr yum.repos.d]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      239/nginx           
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1/sshd              
tcp        0      0 :::80                       :::*                        LISTEN      239/nginx           
tcp        0      0 :::22                       :::*                        LISTEN      1/sshd      
  1. 使用局域网内的机器访问
[root@localhost ~]# curl -i http://172.17.28.4
HTTP/1.1 200 OK
Server: nginx/1.10.3

回到目录



Kubernetes集群架构图

在这里插入图片描述

什么是Pod
Pod上方图中的绿色方块,包含一组容器和磁盘卷,同一个Pod里的容器共享同一个网络命名空间,并且Pod是短暂的不是持久化的。

为了使容器持久化,我们需要使用存储卷的概念(NFS之类)

什么是Label
Label是attach到Pod的一对键值对,用来传递用户定义的属性,主要是用来标记Pod

当容器重启时,IP会发生改变,这是需要使用Service来解决这个问题。

回到目录



Kubernetes Service

在这里插入图片描述

Service是K8S最核心的概念,通过创建Service抽象层,通过Label找到Pod组,可以为一组具有相同功能的POD应用(应用组)提供统一的访问入口,并且将请求进行负载分发到后端的各个容器应用上。

创建Service访问入口,分为两种服务:

  • 内部服务

  • 外部服务

  • 创建Service为内部服务,默认会启动一个随机VIP地址(虚拟IP),将30080端口映射至后端容器的端口(80),通过在局域网访问VIP:30080访问后端POD集群应用
    在这里插入图片描述
    在这里插入图片描述

  • (生产环境)创建Service为外部服务,默认会启动一个随机VIP地址(虚拟的),将30081端口映射至后端容器的端口(80),通过在局域网访问VIP:30081访问后端POD集群应用,默认会生成两个端口:(30081、随机PORT),通过NODE的IP另外一个随机端口可以在浏览器访问
    在这里插入图片描述

回到目录



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值