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>

最新文章

  1. c++怎样让函数返回数组
  2. 如何发布一个Mac应用并使其成为全球付费榜第一
  3. mysql 存储过程--- 创建,调用,删除
  4. flex 加载arcgis 的地图json
  5. springmvc配置文件 spring-servlet
  6. Spark Yarn-cluster与Yarn-client
  7. 201521123083《Java程序设计》第四周学习总结
  8. qtp type和set方法的区别
  9. Python交互图表可视化Bokeh:2. 辅助参数
  10. 再谈PHP设计模式
  11. 集合(5)—Map之HashMap()
  12. 浅谈压缩感知(十七):测量矩阵之有限等距常数RIC的计算
  13. Z字形扫描
  14. verilog task2
  15. Spring Cloud启动应用时指定IP或忽略某张网卡配置
  16. [iOS] 在 ios10 中使用 imessage
  17. Visual Studio 2013 Web开发新特性
  18. 优化笔记: jxrsfxrxx_D_20140916.gz
  19. ui-router 留存
  20. atom插件记录

热门文章

  1. lama-cleaner全部命令行参数
  2. 关于winform 调用本地html页面路径不正确问题
  3. 2、flex最后不对齐问题
  4. Shiro+SpringBoot前后端分离中跨域,sessionId,302问题
  5. Column count doesn&#39;t match value count at row 1存储的数据与数据库表的字段类型定义不相匹配
  6. WPF标题栏自定义
  7. wpa_supplicant 交叉编译
  8. crontal 计划任务
  9. 微服务笔记之Eureka03(服务续约分析)
  10. cookie是什么?有什么用?