k8s_使用k8s部署博客系统svc、secret、configmap(三)
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>
最新文章
- c++怎样让函数返回数组
- 如何发布一个Mac应用并使其成为全球付费榜第一
- mysql 存储过程--- 创建,调用,删除
- flex 加载arcgis 的地图json
- springmvc配置文件 spring-servlet
- Spark Yarn-cluster与Yarn-client
- 201521123083《Java程序设计》第四周学习总结
- qtp type和set方法的区别
- Python交互图表可视化Bokeh:2. 辅助参数
- 再谈PHP设计模式
- 集合(5)—Map之HashMap()
- 浅谈压缩感知(十七):测量矩阵之有限等距常数RIC的计算
- Z字形扫描
- verilog task2
- Spring Cloud启动应用时指定IP或忽略某张网卡配置
- [iOS] 在 ios10 中使用 imessage
- Visual Studio 2013 Web开发新特性
- 优化笔记: jxrsfxrxx_D_20140916.gz
- ui-router 留存
- atom插件记录
热门文章
- lama-cleaner全部命令行参数
- 关于winform 调用本地html页面路径不正确问题
- 2、flex最后不对齐问题
- Shiro+SpringBoot前后端分离中跨域,sessionId,302问题
- Column count doesn&#39;t match value count at row 1存储的数据与数据库表的字段类型定义不相匹配
- WPF标题栏自定义
- wpa_supplicant 交叉编译
- crontal 计划任务
- 微服务笔记之Eureka03(服务续约分析)
- cookie是什么?有什么用?