k8s_使用k8s部署博客系统svc、secret、configmap(三)

发布时间:2022-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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 wideNAME TYPE CLUSTER-iP EXTERNAL-IP PORT(S) AGE SELECTORkubernetes ClusterIP 10.1.0.1 <none> 443/TCP 62d <none>;mysql ClusterIP 10.1.103.194 <none> 3306/TCP 50d app=wordpress,tier=mysql-podwordpress 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

&nbsp;

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(三)全部内容,希望文章能够帮你解决k8s_使用k8s部署博客系统svc、secret、configmap(三)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。