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. mysql 根据父id查询下级所有数据

    select id,apply_resource_name from ( select t1.id,t1.apply_resource_name, if(find_in_set(parent_id, ...

  2. k8s之pod的生命周期

    pod生命周期 和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体. Pod 会被创建.赋予一个唯一的 ID(UID),并被调度到节点,并在终止(根据重启策略)或删除之前 ...

  3. C++语言程序设计实验一 类与对象

    Complex.hpp文件源码: #include <iostream> using namespace std; class Complex { public: Complex(floa ...

  4. Java——IO框架

    IO框架 流:内存与存储设备之间传输数据的通道 分类 流向 输入流:从硬盘等外设到内存的流 输出流:从内存到硬盘等外设的流 传输单位 字节流(抽象类InputStream,OutputStream): ...

  5. ASP.NET Core MVC中调用Json()时默认使用Newtonsoft.Json返回数据

    1.需要安装两个包 Newtonsoft.Json Microsoft.AspNetCore.Mvc.NewtonsoftJson 2. Startup 类中的 ConfigureServices 方 ...

  6. list集合之流操作

    1.根据某一个实体字段进行去重(分组)操作 List<Object> list = objectList.stream().collect(Collectors.collectingAnd ...

  7. locust自定义负载策略。

    1.时间峰值策略 每运行一分钟启动100个用户,总运行时间为10分钟 class CustomShape(LoadTestShape): # 设置时限 time_limit = 600 # 设置产生率 ...

  8. wireguard 在openwrt中的配置

    按照网上教程正常配置,防火墙通信规则中,选择打开监听端口,目标设备:设备(输入),目标端口:监听端口. 客户端设置:注意路由器的IP地址(段)要填0.0.0.0/0.

  9. 一个因为windows系统缺失文件而导致的pyspark的BUG

    背景: 在windows 系统中开发pyspark程序. 一个简单的WC程序: from pyspark.sql import SparkSession spark = SparkSession.bu ...

  10. Educational Codeforces Round 143 (Rated for Div

    Educational Codeforces Round 143 (Rated for Div. 2) Problem - B Ideal Point 给定n个线段区间\([l,r]\),我们定义\( ...