service

service是抽象Pod对外提供服务的地址,将其固化的作用;屏蔽因pod的创删以及扩缩容带来ip变化。service通过自身定义文件的selector的标签配置匹配到需要提供服务的对象。

下面是整个wordpress系统部署的service定义文件,其中的selector配置的label是选择符合该label的pod并对其提供对外访问的服务

#api版本号
apiVersion: v1
#资源类型
kind: Service
metadata:
#service自身的名称
name: mysql
#service自身的标签
labels:
app: mysql
spec:
ports:
#service对外开放的端口
- port: 3306
#service关联资源对应container的端口,该端口与上面的port是绑定关系
targetPort: 3306
protocol: TCP
#service通过选择器配置的两个label选择符合这两个标签的pod,为这些pod提供对外服务
selector:
app: wordpress
tier: mysql-pod
#service类型,ClusterIp只对内部提供服务,nodePort类型可以对外提供服务
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
nodePort: 30008
targetPort: 80
protocol: TCP
selector:
app: wordpress
tier: frontend-pod
type: NodePort

创建service服务

[root@k8s-01 ~]# kubectl create -f service_mysql_wp.yml

查询service

[root@k8s-01 ~]# kubectl get service -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 62d <none>
mysql ClusterIP 10.1.103.194 <none> 3306/TCP 50d app=wordpress,tier=mysql-pod
wordpress NodePort 10.1.43.26 <none> 80:30008/TCP 50d app=wordpress,tier=frontend-pod

secret

secret资源是用来管理密码的,这里以管理mysql的密码为例进行演示

apiVersion: v1
kind: Secret
metadata:
name: mysql-pass
type: Opaque
#Opaque 隐藏,该类型使用kubectl的任何查看命令都看不到下面data部分定义的密码数据
data:
#敏感数据通过base64编码处理echo -n $str | base64
#password: root
password: cm9vdA==
#可以设置多组数据 #创建secret对象
[root@k8s-01 ~]# kubectl create -f secret_mysql.yml #查看创建的secret资源
[root@k8s-01 ~]# kubectl get secret
NAME TYPE DATA AGE
default-token-c8jx9 kubernetes.io/service-account-token 3 62d
mysql-pass Opaque 1 50d [root@k8s-01 ~]# kubectl describe secret mysql-pass
Name: mysql-pass
Namespace: default
Labels: <none>
Annotations: <none> Type: Opaque Data
====
password: 4 bytes

configmap

用于将系统的环境变量、配置参数使用资源对象交由k8s集群进行管理

配置文件解析即资源的创建和查看,整个wordpress系统中mysql需要设置dbname信息,这里以该参数配置为例

apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
data:
db-name: wordpress
#可以设置多组数据,数值类型一定要使用""引起来,否则会报错
userage: "18"
dbuser: root #创建configmap
[root@k8s-01 ~]# kubectl create -f mysql_configmap.yml #查询创建的资源
[root@k8s-01 ~]# kubectl get configmap -o wide
NAME DATA AGE
mysql-config 3 50d
[root@k8s-01 ~]# kubectl describe configmap mysql-config
Name: mysql-config
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","data":{"db-name":"wordpress","dbuser":"root","userage":"18"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"m... Data
====
db-name:
----
wordpress
dbuser:
----
root
userage:
----
18
Events: <none>

k8s_使用k8s部署博客系统svc、secret、configmap(三)的更多相关文章

  1. 【云原生 · Kubernetes】部署博客系统

    [云原生 · Kubernetes]Kubernetes运维 接着上次的内容,后续来了! (1)配置NFS服务 master节点安装NFS与RPC服务: # yum install -y nfs-ut ...

  2. 使用docker部署WordPress博客系统(win10企业版)

    docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...

  3. 如何快速部署国人开源的 Java 博客系统 Tale

    除了闷头专研技术之外,程序员还需要不断地写作进行技术积累,写博客是其中最重要的方式之一.商业博客平台不少,但是更符合程序员背景的方案,是自己开发一个博客平台或者使用开源的博客平台. 开源的博客平台多如 ...

  4. linux下部署tomcat 上线jpress博客系统

    tomcat Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器. tomcat有三个端口 开始部署 安装tomcat 第一步:下载tomcat 安装包 tomcat官网 ...

  5. 在github Pages上部署octopress搭建个人博客系统

    原文链接:http://caiqinghua.github.io/blog/2013/08/26/deploy-octopress-to-github-pages/ 引子 上一篇博客已经说了为什么要搭 ...

  6. Docker 方式部署 Solo 博客系统总结

      此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结>   最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...

  7. Tomcat 方式部署 Solo 博客系统总结

      此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...

  8. Centos 7使用docker部署LAMP搭建wordpress博客系统

    0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...

  9. 使用Docker部署Spring-Boot+Vue博客系统

    在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...

  10. 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...

随机推荐

  1. Vue中如何实现在线预览word文件、excel文件

    一.查看word 1.引用mammoth.js (1)安装 npm install --save mammoth 1 npm install --save mammoth (2)引入import ma ...

  2. Android 7.0+模拟器Fiddler抓包详细教程 fiddler443问题解决办法

    https://blog.csdn.net/qq_43278826/article/details/124291040 [前言]         众所周知,假如设备是android 7.0+的系统同时 ...

  3. 测开-面试题-MySQL

    1 增删改查的关键字分别是什么? 答: insert into \ replace into.delete.update.select 2 内连接和外连接的区别? 答: (1)内连接,只会展示与两表关 ...

  4. dns服务之bind配置内网解析部分子域名,其它子域名转发

    bind配置内网解析部分子域名,其它子域名转发.以下以m.xxx.com和admin.xxx.com由内网dns解析,其它*.xxx.com转发给外网dns解析为例配置.文件/etc/named.co ...

  5. HttpClient线程池&重试机制

    HttpClientUtils package com.example.http_thread.util; import org.apache.http.HttpEntityEnclosingRequ ...

  6. Mac Parallels Desktop篇 安装Windows 10

    Parallels Desktop安装Windows 10系统: 1.首先下载并安装Parallels Desktop ,下载 Windows 10 系统镜像 2.打开Parallels Deskto ...

  7. IDEA的常用快捷键和文档注释

    IDEA的常用快捷键 Alt + 回车 导入包,自动修正 Ctrl + N 查找类 Ctrl + Shift + N 查找文件 Ctrl + Alt + N 格式化代码 Ctrl + Alt + O ...

  8. ETCD 实现服务发现讲解

    租约:具有时间有效期,键绑定到租约后,当租约到期失效,绑定到的租约的键也会被删除. 创建租约 etcdctl lease grant 600 lease 694d81f509b7940a grante ...

  9. 8.class 类

    一.基础语法 class 类名 { } 二.类的属性 基础语法: class 类名 { 属性名: 数据类型 = 属性值; contructor(形参名: 数据类型) { this.属性名 = 属性值; ...

  10. 【azw3】麻省理工深度思考法:从模型及动力机制来思考现象

    书本详情 标题:麻省理工深度思考法:从模型及动力机制来思考现象作者:[日]平井孝志 著:张玉虹 译年份:2018出版社:北京:中国华侨出版社ISBN:9787511373441,7511373445格 ...