Docker Kubernetes Service 代理服务创建
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 代理服务创建的更多相关文章
- Docker Kubernetes 命令行创建容器
Docker Kubernetes 命令行创建容器 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
- Docker Kubernetes Service 网络服务代理模式详解
Docker Kubernetes Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...
- 30 docker swarm service 的创建维护和水平拓展
运行环境在上两篇文章中已经搭建 1. 创建一个service (与 docker run 类似 ,创建一个 container) docker service create --name demo b ...
- Docker Kubernetes 创建管理 Pod
Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
- Docker Kubernetes 创建管理 Deployment
Docker Kubernetes YAML文件创建容器 通过创建Deployment来管理pods从而创建容器.它会同时创建容器.pod.以及Deployment ! 环境: 系统:Centos 7 ...
- 如何调用docker swarm service的API来创建及更新服务
平衡的推进,先作一个原型吧. #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json #定义docker s ...
- Docker系列(十三):Kubernetes Service的负载均衡和网络路由的秘密
Kubernetes Service设计分析 什么是单体程序?所有的模块都在一个进程中 微服务,每一个服务是一个进程的模式 kubernetes中的service其实只是一个概念,是一组相同lable ...
- C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service
关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...
随机推荐
- HTTP简介,http是一个属于应用层的面向对象的协议
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- php数组函数大全
一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...
- html5与css 1. web标准及组成
学习目标 1.本专业介绍.HTML相关概念,HTML发展历史 2.WEB标准,W3C/WHATWG/ECMA相关概念 3.相关软件的应用以及站点的创建 4.HTML基本结构和HTML语法 5.HTML ...
- python 获取本机ip
有的设备上,有host相关配置,或者网络环境特殊,导致从hostname获取ip不符合预期. 如下函数整合了多种获取ip的方式,大部分情况都可涵盖,一般情况下可以满足需求~ 核心是创建一个UDP协议下 ...
- python学习之旅(十六)
Python基础知识(15):模块 1.可以把模块想象成导入Python以增强其功能的扩展 2.任何程序都可以作为模块导入 3.导入模块并不意味着在导入的时候执行某些操作,它们主要用于定义变量.函数和 ...
- Ububtu 14.04 安装 Hadoop 2.7.3
1.首先安装java,配置java开发环境 下载jdk:http://www.oracle.com/technetwork/java/javase/archive-139210.html选择你想要下载 ...
- grpc,protoc, protoc-gen-go,rust
Rust 与服务端编程的碎碎念https://zhuanlan.zhihu.com/p/30028047 GRPC:golang使用protobuf https://segmentfault.com/ ...
- [daily][fedora][netctl][nmcli] 设置笔记本为台式机网关
TAG:将一个网卡动态增减到网桥里的配置 场景是这样的. 我的笔记本无线网卡用来访问互联网.OS里面有一个birdge用来链接所有的虚拟机帮助虚拟机上网. 现在有了一台台式机.台式机用来做hyperv ...
- GIS常用知识列举
GIS知识分类 我认为GIS知识,大体可分为以下三类. G——测量学.地图学.误差理论等基础——测绘方面 I——数据库.开发——IS方面 S——GIS原理——结合前面两种知识的理念 第一类,是基础,有 ...
- spark-sql将Rdd转换为DataFrame进行操作的两种方法
SparkConf sparkConf = new SparkConf() .setMaster("local").setAppName("ClzMap"); ...