• 项目环境搭建【Docker+k8s】九 || kubernetes创建容器


    1、创建容器

    命令中--replicas=2 启动2个实例,--port=80 运行在k8s的80端口上,没有进行映射端口

    [root@yn101-22 ~]# kubectl run nginx --image=nginx --replicas=2 --port=80
    #输出如下:
    kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
    deployment.apps/nginx created
    

    2、查看全部Pods状态

    [root@yn101-22 ~]# kubectl get pods
    #输出如下:
    NAME                     READY   STATUS    RESTARTS   AGE
    nginx-5578584966-2tkmz   1/1     Running   0          79s
    nginx-5578584966-8r8jt   1/1     Running   0          79s
    

    3、查看已部署的服务

    [root@yn101-22 ~]# kubectl get deployment
    #输出如下:
    NAME    READY   UP-TO-DATE   AVAILABLE   AGE
    nginx   2/2     2            2           2m17s
    

    4、发布服务

    使用负载均衡模式发布服务,让用户可以访问。暴露一个名称为nginx的deployment,暴露80端口,类型是负载均衡

    [root@yn101-22 ~]# kubectl expose deployment nginx --port=80 --type=LoadBalancer
    #输出如下:
    service/nginx exposed
    

    5、查看已发布的服务

    [root@yn101-22 ~]# kubectl get service
    #输出如下
    NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
    kubernetes   ClusterIP      10.96.0.1      <none>        443/TCP        9h
    nginx        LoadBalancer   10.106.9.160   <pending>     80:31176/TCP   2m9s
    

    其中nginx的port:80为k8s的端口,31176为暴露出来的端口

    6、查看服务详情

    [root@yn101-22 ~]# kubectl get service
    #输出如下
    NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
    kubernetes   ClusterIP      10.96.0.1      <none>        443/TCP        9h
    nginx        LoadBalancer   10.106.9.160   <pending>     80:31176/TCP   2m9s
    #查看详情
    [root@yn101-22 ~]# kubectl describe service nginx
    Name:                     nginx
    Namespace:                default
    Labels:                   run=nginx
    Annotations:              <none>
    Selector:                 run=nginx
    Type:                     LoadBalancer
    IP:                       10.106.9.160 #k8s内部ip地址
    Port:                     <unset>  80/TCP #k8s内部端口
    TargetPort:               80/TCP
    NodePort:                 <unset>  31176/TCP #node端口
    Endpoints:                192.168.114.193:80,192.168.170.4:80
    Session Affinity:         None
    External Traffic Policy:  Cluster
    Events:                   <none>
    

    7、验证是否成功

    master在默认情况下不会运行pod,所以在node节点访问nginx进行验证,也可使用docker ps查看运行的容器。

    服务高可用测试:使用docker rm -f 容器id删除容器,删除后容器又自动创建。

    #访问测试
    http://192.168.101.31:31176/
    http://192.168.101.32:31176/
    

    8、停止服务

    • service是服务,对外提供服务
    • deployment是部署
    • pod运行容器的单元

    容器运行在pod上,pod运行在deployment上,停止服务,必须先停止deployment

    删除已部署的服务

    [root@yn101-22 ~]# kubectl delete deployment nginx
    #输出如下:
    deployment.apps "nginx" deleted
    

    删除已发布的服务

    [root@yn101-22 ~]# kubectl delete service nginx
    #输出如下:
    service "nginx" deleted
    

    9、学习交流QQ群【883210148】

    alt QQ群

    10、关注微信公众号,免费获取文档及资源

    alt 微信公众号

  • 相关阅读:
    hibernate 继承映射关系( JOINED)
    hibernate 继承映射关系( TABLE_PER_CLASS)
    hibernate 继承映射关系( SINGLE_TABLE)
    hibernate list和iterate
    hibernate 1 + N 问题解决
    hibernate EJBQL QBC QBE
    Visual Studio 2015 Update 3 RC 候选预览版粗来了
    【Xamarin挖墙脚系列:Xamarin正式发布了IOS的模拟器在Windows下】
    Windows服务安装完成后自动启动
    用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
  • 原文地址:https://www.cnblogs.com/kevin-ying/p/12360568.html
Copyright © 2020-2023  润新知