Docker Kubernetes  Service 代理服务创建

创建Service需要提前创建好pod容器。再创建Service时需要指定Pod标签,它会提供一个暴露端口默会分配容器内网访问的唯一IP地址。

环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

一、通过deployment创建pod

1、创建yaml文件

vim nginx-deployment.yaml

apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.12
ports:
- containerPort: 80
# 指定api版本
apiVersion: apps/v1beta2
# 指定需要创建的资源对象
kind: Deployment
# 源数据、可以写name,命名空间,对象标签
metadata:
# 指定对象名称
name: nginx-deployment
# 描述资源相关信息
spec:
# 指定副本数
replicas: 3
# 资源标签选择器
selector:
# 匹配标签字段
matchLabels:
# 标签名
app: nginx
# 描述资源具体信息
template:
# 源数据、可以写name,命名空间,对象标签
metadata:
# 指定标签
labels:
# 标签名
app: nginx
# 描述资源相关信息
spec:
# 容器管理
containers:
# 容器名称
- name: nginx
# 镜像名称
image: nginx:1.12
# 端口管理
ports:
# 指定暴露容器端口
- containerPort: 80

文件注解

2、创建deployment

kubectl create -f nginx-deployment.yaml

二、创建Service NodePort代理服务

1、创建yaml文件

vim service.yaml

apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 888
targetPort: 80
nodePort: 30001
type: NodePort
clusterIP: "10.10.10.11"
# api版本
apiVersion: v1
# 创建对象类型
kind: Service
# 保存源数据信息
metadata:
# service名称
name: nginx-service
# 具体service内容
spec:
# 指定标签
selector:
# 标签要与指定的pod便签相同
app: nginx
# 开放指定端口,可写多个
ports:
# port的指定名称
- name: http
# 负载均衡默认协议为TCP
protocol: TCP
# 暴露的service端口
port: 888
# 容器端口
targetPort: 80
# 固定容器内网唯一IP
clusterIP: "10.10.10.11"
# node节点创建socker的暴露端口,默认30000~32767
nodePort: 30001
# 服务类型
type: NodePort

文件注解

2、创建service

kubectl create -f service.yaml 
命令:kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service2 NodePort 10.10.10.11 <none> 888:30001/TCP 1m

查看service

命令:kubectl describe service nginx-service

Name:                     nginx-service
Namespace: default
Labels: app=nginx
Annotations: <none>
Selector: app=nginx
Type: NodePort
IP: 10.10.10.11
Port: http 888/TCP
TargetPort: 80/TCP
NodePort: http 30001/TCP
Endpoints: 172.17.1.2:80,172.17.1.3:80,172.17.1.4:80 + 9 more...
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

查看service详细描述信息

命令:netstat -lnpt | grep 30001

tcp6       0      0 :::30001                :::*                    LISTEN      74604/kube-proxy   

查看NODE节点暴露端口

指定代理serviceIP它会默认指定一个IP地址段
配置文件:/opt/kubernetes/cfg/kube-apiserver
# 集群分配的IP范围
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.10.10.0/24"
注:不要分配到与当前网络冲突的网段

固定集群IP地址范围

注:主配置文件内可修改默认nodeport端口范围 配置文件添加参数--service-node-port-range。

3、测试访问

Docker Kubernetes Service 代理服务创建的更多相关文章

  1. Docker Kubernetes 命令行创建容器

    Docker Kubernetes 命令行创建容器 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...

  2. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  3. 30 docker swarm service 的创建维护和水平拓展

    运行环境在上两篇文章中已经搭建 1. 创建一个service (与 docker run 类似 ,创建一个 container) docker service create --name demo b ...

  4. Docker Kubernetes 创建管理 Pod

    Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...

  5. Docker Kubernetes 创建管理 Deployment

    Docker Kubernetes YAML文件创建容器 通过创建Deployment来管理pods从而创建容器.它会同时创建容器.pod.以及Deployment ! 环境: 系统:Centos 7 ...

  6. 如何调用docker swarm service的API来创建及更新服务

    平衡的推进,先作一个原型吧. #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json #定义docker s ...

  7. Docker系列(十三):Kubernetes Service的负载均衡和网络路由的秘密

    Kubernetes Service设计分析 什么是单体程序?所有的模块都在一个进程中 微服务,每一个服务是一个进程的模式 kubernetes中的service其实只是一个概念,是一组相同lable ...

  8. C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service

    关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...

  9. ASP.NET Core在Azure Kubernetes Service中的部署和管理

    目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...

随机推荐

  1. poj3278Catch That Cow

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 88361   Accepted: 27679 ...

  2. 判断网页请求与FTP请求

    实例说明 在访问Internet网络时,经常涉及到很多访问协议,其中最明显.最常用的就是访问页面的http协议.访问ftp服务器的FTP协议等.

  3. 【转】- 从FM推演各深度CTR预估模型(附代码)

    从FM推演各深度CTR预估模型(附代码) 2018年07月13日 15:04:34 阅读数:584 作者: 龙心尘 && 寒小阳 时间:2018年7月 出处: 龙心尘 寒小阳

  4. Linux命令 umask

    umask: 文件预设权限 指定当前用户在创建文件或目录时的权限默认值. $ umask0002$ umask -Su=rwx,g=rwx,o=rx 创建文件时,预设没有x 权限,即只有rw 权限,最 ...

  5. 实现Linux下的ls和ls-l

    ls的C语言代码实现 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #includ ...

  6. hadoop-1.0.1根目录下的jar包

  7. IntelliJ IDEA 注册码激活

    IntelliJ IDEA 注册码激活 方法一:使用激活服务器激活方法 步骤 1.打开注册/激活窗口: 2.选择 License server: 3.填入上述其中一个网址(如:http://idea. ...

  8. javascript 窗口宽高滚动

    //不加window IE不支持 console.info(window.screenLeft);//IE支持火狐不支持 console.info(window.screenX);//火狐支持,IE不 ...

  9. SqlServer 行转列,列转行 以及PIVOT函数快速实现行转列,UNPIVOT实现列转行

     一   .列转行 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(3 ...

  10. wordpress调用the_excerpt()不带<p>标签

    我们知道wordpress调用摘要内容用<?php the_excerpt(); ?>就可以,但是它会自动添加一个p标签,例如<p>这里是description</p&g ...