mysql image类型_K8s--03 资源类型

一、常用资源类型

1.工作负载类型  RC  ReplicaController  RS  ReplicaSet   DP  Deployment  DS  DaemonSet  2.服务发现及负载均衡  Service   Ingress 3.配置与存储资源  ConfigMap 存储配置文件  Secret    存储用户字典4.集群级别资源  Namespace  Node  Role  ClusterRole  RoleBinding  ClusterRoleBinding

二、资源配置清单

1.创建资源的方法  apiserver仅能接受json格式的资源定义   yaml格式提供的清单,apiserver可以自动将其转换为json格式再提交2.资源清单介绍  查看资源清单所需字段  kubectl explain pod  资源清单字段介绍  apiVersion: v1  #属于k8s哪一个API版本或组  kind: Pod  #资源类型  metadata:  #元数据,嵌套字段  spec:  #定义容器的规范,创建的容器应该有哪些特性    status:   #只读的,由系统控制,显示当前容器的状态  json嵌套{ 1级:     { 2级:          { 3级:Value          }      }}3.查看资源清单嵌套的命令  kubectl explain pod  kubectl explain pod.spec  kubectl explain pod.spec.volumes4.使用命令行创建一个pod  kubectl create deployment nginx --image=nginx:alpine  kubectl get pod -o wide5.将刚才创建的pod配置到处成yaml格式  kubectl get pod -o yaml > nginx-pod.yaml    精简资源清单,删掉不需要的配置cat nginx-pod.yaml apiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx:alpine    imagePullPolicy: IfNotPresent    ports:    - name: http      containerPort: 80  json格式写法:{ apiVersion: "v1", kind: "Pod", metadata:    {      name: "nginx",       labels:         {           app: "nginx"        }            } spec:    {     containers:       {         name: "nginx",         image: "nginx:alpine",         imagePullPolicy: "IfNotPresent"       }   }    }         删除命令行创建的资源  kubectl delete deployments.apps nginx  应用资源配置清单  kubectl create -f nginx-pod.yaml  查看pod信息  kubectl get pod -o wide  查看pod详细信息  kubectl describe pod nginx

三、查看node标签

Node打标签1.查看node的标签kubectl get node --show-labels2.给node打标签kubectl label nodes node2 CPU=Xeonkubectl label nodes node3 disktype=ssd3.编辑POD资源配置清单,使用node标签选择器apiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx:1.14.0    imagePullPolicy: IfNotPresent    ports:    - name: http      containerPort: 80  nodeSelector:    #CPU: Xeon    disktype: SSD4.删除容器重新创建kubectl delete pod nginxkubectl create -f nginx-pod.yaml5.查看结果kubectl get pod -o wide6.删除节点标签kubectl label nodes node2 CPU-kubectl label nodes node3 disktype-

四、pod容器打标签

查看pod标签1.标签说明  一个标签可以给多个POD使用  一个POD也可以拥有多个标签    2.查看POD标签  kubectl get pod --show-labels3.添加标签方法方法1:直接编辑资源配置清单:apiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: nginx    release: beta----------------------方法2:命令行打标签kubectl label pods nginx release=betakubectl label pods nginx job=linuxkubectl get pod --show-labels  4.删除标签kubectl label pod nginx job- kubectl get pod --show-labels5.实验: 生成2个POD,打上不同的标签,然后根据标签选择kubectl create deployment nginx --image=nginx:1.14.0kubectl get pod --show-labelskubectl label pods nginx-xxxxxxxx release=stablekubectl get pod --show-labels根据标签查看kubectl get pods -l release=beta --show-labels kubectl get pods -l release=stable --show-labels 根据标签删除kubectl delete pod -l app=nginx

五、实战操作步骤:

[root@node1 ~]# vim nginx-pod.yamlapiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx:alpine    imagePullPolicy: IfNotPresent    ports:    - name: http      containerPort: 80#先查看pod信息[root@node1 ~]# kubectl get podNo resources found in default namespace.#应用资源配置清单(注意: 如果有,就先删除 kubectl  delete dp nginx)[root@node1 ~]# kubectl  create -f nginx-pod.yamlpod/nginx created#查看pod详细信息[root@node1 ~]# kubectl get pod -o wideNAME    READY   STATUS    RESTARTS   AGE   IP         NODE    NOMINATED NODE   READINESS GATESnginx   1/1     Running   0          30s   10.2.1.2   node2   #访问查看[root@node1 ~]# curl 10.2.1.2Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.

For online documentation and support please refer tonginx.org.
Commercial support is available atnginx.com.

Thank you for using nginx.

运行一个demo小服务

1.编写资源配置清单[root@node1 ~/demo]# cat tomcat-demo.yaml apiVersion: apps/v1kind: Deployment metadata:  name: mysqlspec:  replicas: 1  selector:    matchLabels:      app: mysql  template:    metadata:      labels:        app: mysql    spec:      containers:      - name: mysql        image: mysql:5.7        ports:        - containerPort: 3306        env:        - name: MYSQL_ROOT_PASSWORD          value: "123456"---apiVersion: v1kind: Servicemetadata:  name: mysqlspec:  ports:    - port: 3306  selector:    app: mysql---apiVersion: apps/v1kind: Deployment metadata:  name: mywebspec:  replicas: 2  selector:    matchLabels:      app: myweb  template:    metadata:      labels:        app: myweb    spec:      containers:      - name: myweb        image: kubeguide/tomcat-app:v1        ports:        - containerPort: 8080        env:        - name: MYSQL_SERVICE_HOST          value: 'mysql'        - name: MYSQL_SERVICE_PORT          value: '3306'---apiVersion: v1kind: Servicemetadata:  name: mywebspec:  type: NodePort  ports:    - port: 8080      nodePort: 30001  selector:    app: myweb=====================================或者分开写四个yaml文件cat mysql-dp.yamlapiVersion: apps/v1kind: Deployment metadata:  name: mysqlspec:  replicas: 1  selector:    matchLabels:      app: mysql  template:    metadata:      labels:        app: mysql    spec:      containers:      - name: mysql        image: mysql:5.7        ports:        - containerPort: 3306        env:        - name: MYSQL_ROOT_PASSWORD          value: "123456"----------------------------------------------------cat mysql-svc.yamlapiVersion: v1kind: Servicemetadata:  name: mysqlspec:  ports:    - port: 3306  selector:    app: mysql-----------------------------------------------cat tomcat-dp.yamlapiVersion: apps/v1kind: Deployment metadata:  name: mywebspec:  replicas: 2  selector:    matchLabels:      app: myweb  template:    metadata:      labels:        app: myweb    spec:      containers:      - name: myweb        image: kubeguide/tomcat-app:v1        ports:        - containerPort: 8080        env:        - name: MYSQL_SERVICE_HOST          value: 'mysql'        - name: MYSQL_SERVICE_PORT          value: '3306'-----------------------------------------------------cat tomcat-svc.yamlapiVersion: v1kind: Servicemetadata:  name: mywebspec:  type: NodePort  ports:    - port: 8080      nodePort: 30001  selector:    app: myweb---------------------------------------------------

2.应用资源配置清单

[root@node1 ~]# kubectl create -f tomcat-demo.yaml deployment.apps/mysql createdservice/mysql createddeployment.apps/myweb createdservice/myweb created3.查询资源是否创建成功[root@node1 ~]# kubectl get pod -o wide NAME                     READY   STATUS    RESTARTS   AGE    IP         NODE    NOMINATED NODE   READINESS GATESmysql-8fcd9f64-vqkm9     1/1     Running   0          2m1s   10.2.1.2   node2   myweb-6f974fdbdc-gsncp   1/1     Running   0          2m     10.2.1.3   node2   myweb-6f974fdbdc-ngngv   1/1     Running   0          2m     10.2.2.2   node3   4.查询暴露的端口[root@node1 ~]# kubectl get service NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGEkubernetes   ClusterIP   10.1.0.1               443/TCP          22hmysql        ClusterIP   10.1.120.187           3306/TCP         3m32smyweb        NodePort    10.1.37.225            8080:30001/TCP   3m31s5.浏览器登录查看http://10.0.0.11:30001/demo/index.jsp
1fdc8fd2f844cad6935652066853ac08.png
d9fb4baf995f3449a30196699e535e13.png
cfa9785222047d8b767a5579a56fddb8.png
ed82f9ebfaaa11978231c89448dacbd6.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值