zoukankan      html  css  js  c++  java
  • 9-4 深入Pod-----pod相关的点点滴滴

    深入Pod

    设计思想

      Pod是最小调度单位

      本质还是容器的隔离

      Pause容器

    容器只能运行一个服务,是单进程的。

    项目 7-pod

    1、pod-network

    kubectl apply -f pod-network.yaml
    # 查看有两 REDAY启动两个   # 部署到w2   
    kubectl get pods -o wide 

     在w2上查看

    docker ps|grep network

    进入容器

    docker exec -it 1abf0453d138  sh
    
    netstat -ntlp
    # 容器之中相互访问网络是通的
    wget localhost:8080/hello?name=fffff
    # 查看IP
    ifconfig 
    
    # 进入另一容器
    docker exec -it 876115a652fc sh
    ifconfig   # 查看ip是一样的,共享IP

     

    2、pod-volume

     共享目录

    kubectl apply -f pod-volume.yaml 
    kubectl get pods -o wide
    
    # 运行机器
    docker ps|grep volume
    
    # 进入dubbo容器
    docker exec -it 4bad00e5f65d sh
    # 在 /shared-dubbo/   创建: touch 123123
    
    # 进入web容器的共享目录。 /shared-web    同步了  123123 内容

     查看 host

    # 查看hosts和主机无关,保持一一致的,不能在容器上修改hosts文件
    docker exec -it 4b4184cce642  cat /etc/hosts   
    docker exec -it 4bad00e5f65d  cat /etc/hosts   

    增加配置  hostAliases

    kubectl apply -f pod-volume.yaml 

    查看host已经加上了

    docker exec -it 6932b1752b07 cat /etc/hosts
    docker exec -it 747d3ac98fd8 cat /etc/hosts

    配置

    hostNetwork: true    # 增是否使用宿主机的网络

    hostPID: true    # 增使用宿主机的PID namespace

    docker exec -it a178d98baafb sh
    
    # 进程和端口包括宿主机的
    ps
    nestart

     增容器启动停止时执行命令 

     lifecycle:

     kubectl apply -f pod-volume.yaml 
    
    #  登入web容器,查看日志
    docker exec -it 8291babf900e sh
    
    # 可以查看启动是插入的数据日志
    tail -f /var/log/messages 

    pod的几种状态

    Pendding
    containerCreating
    Running
    Succeeded
    Failed 
    Ready
    CreashLoopBakOff     # 循环补偿,启动失败状态
    Unknown  # 未知状态

    3、ProjectedVolume 项目

     Secret 配置

    kubectl get secret
    # 用于和apiserver交互授权的。查看定义。
    kubectl get secret default-token-blxt7 -o yaml
    
    # 查看pods. secret用法。 kubectl get pods springboot-web-demo-7f8ff6b8bc-qcjsz -o yaml """ # 定义 volumes: defaultMode: 420 #权限
    # 挂载位置 volumeMounts
    """
    # 进入容器,查看挂载目录,为bas64解密。
    docker exec -it a178d98baafb sh

     创建、使用

    #### 创建。 存储到etcd中, 在pod中使用 #
    kubectl apply -f secret.yaml 
    #### 使用。在pod使用
    kubectl apply -f pod-secret.yaml 
    
    # 查看部署位置
    kubectl get pods -o wide
    
    # 进入容器
    docker ps|grep secret
    docker exec -it cfe77e3942d0 sh
    
    cd db-secret/   # 查看secret名称
    cat username

    configmap配置

    配置文件方式

    #### 创建,指定文件
    kubectl create configmap web-game --from-file game.properties 
    # 查看
    kubectl get cm web-game -o yaml
    
    #### 使用,在pod
    kubectl apply -f pod-game.yaml 
    
    #查看现有的配置文件
    cd /etc/config/game 
    game.properties # 和上面创建的一样的。 程序可以通过配置文件拿到一些属性值
    
    # 可以修改配置
    kubectl edit cm web-game
    
    # 登录容器查看修改后的配置
    docker exec -it 42fa6b0a3509 sh 
    cat /etc/config/game/game.properties 

     环境变量方式

    #### 创建。 配置文件形式创建
    kubectl apply -f configmap.yaml 
    #### 使用。 通过环境变量使用
    kubectl apply -f pod-env.yaml
    # 进入容器 docker exec -it 91cd70a02112 sh / # env|grep LOG # 查看环境环境变量已经设置到了容器中。程序可以通过环境变量使用了

    cmd方式

    kubectl apply -f pod-cmd.yaml 
    docker exec -it 91cd70a02112 sh

    downwardapi配置

    让程序能取到pod对象本身的一些信息

    kubectl apply -f pod-downwardapi.yaml 
    
    docker exec -it d99ae589e81e  sh
    cd /etc/podinfo
    
    # 查看拿到pod定义信息

    end...

  • 相关阅读:
    Yslow的A评级指南
    Sqlserver 数据库自动备份
    他们如果什么也没有做,那将是我来世上的最大遗憾。
    规划人生
    安装程序无法复制一个或多个文件。特定错误码是0x4b8。
    Sqlserver数据库的恢复
    Android新手之旅(3) 信息的输出
    PDF开发控件
    通过快盘搭建自己的svn服务器
    Android新手之旅(2) 新手问题
  • 原文地址:https://www.cnblogs.com/edeny/p/14578652.html
Copyright © 2011-2022 走看看