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 ...
随机推荐
- Zephyr学习(二)开发环境搭建
一.概述 Zephyr支持在Windows.Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境. 二.步骤 2.1安装msys2 msys2是一个Linux模 ...
- deep learning 以及deep learning 常用模型和方法
首先为什么会有Deep learning,我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达. 1.Deep learning与Neural Network 深度学习是机器学 ...
- golang 多个worker正常关闭的示例
代码如下,如有问题请联系 baibaibai_000@163.com package work_test import ( "math/rand" "runtime&qu ...
- Jmeter中使用SSH插件,连接远程linux机器执行命令
一.Why 在云主机测试中,需要使用SSH协议连接云主机进行相关操作 在python中使用paramiko库很好实现,在如果要使用jmeter做性能测试时,怎么做? 二.解决 既然原生jmeter没有 ...
- [LeetCode] Bomb Enemy 炸弹人
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- CTextUI 文本控件 显示数字方法
得将数字变成字符串才行 m_ptxtCurrentcharUI->SetText(util::int32ToCString(txtLength)); 或 String.valueOf(x) 或 ...
- POJ 3126 - Prime Path - [线性筛+BFS]
题目链接:http://poj.org/problem?id=3126 题意: 给定两个四位素数 $a,b$,要求把 $a$ 变换到 $b$.变换的过程每次只能改动一个数,要保证每次变换出来的数都是一 ...
- Django之中间件&信号&缓存&form上传
中间件 1.中间件是什么? 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用, ...
- 编写Shell脚本的最佳实践
编写Shell脚本的最佳实践 http://kb.cnblogs.com/page/574767/ 需要记住的 代码有注释 #!/bin/bash # Written by steven # Name ...
- nginx安装lua模块实现高并发
nginx安装lua扩展模块 1.下载安装LuaJIT-2.0.4.tar.gz wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar ...