zoukankan      html  css  js  c++  java
  • k8s笔记

    1.所有pod都在同一个共享网络地址空间中,每个pod都可以直接访问其他pod的IP进行访问
    2.一个pod中的容器运行于相同的Network命名空间,共享相同的IP地址和端口,同一pod中的容器运行的多个进行要注意不能绑定到相同的端口
    3.每个pod都有独立的IP和端口
    4.


    kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1 replicationcontroller "kubia ” created

    创建loadbalancer类型服务
    kubectl expose re kubia --type=LoadBalancer --name kubia-http service ”kubia - http " exposed

    kubectl get #列出所有类型资源
    kubectl get pods
    kubectl get pods -o wide
    kubectl describ pod kubia-hczji #获取pod的详细信息
    kubectl get services/svc
    kubectl get replicationcontrollers/rc
    kubectl scale rc kubia --replicas=3 #名为kubia的rc增加副本数到3个

    #使用yaml文件创建pod
    kuberctl create -f kubia-manual.yaml #从yaml文件创建pod
    kubectl get po kubia-manual -o yaml/json #查看pod的yaml或json信息
    kubectl get po --show-labels #获取pod标签
    kubectl get po -L label01,label02 #只获取特定标签内容
    kuberctl logs kubia-manual #查看pod日志
    kuberctl logs kubia-manual -c kubia #获取kubia-manual pod中kubia容器的日志
    每天或者每次日志文件达到10MB大小时, 容器日志都会自动轮替。kubectl logs命令仅显示最后一次轮替后的日志条目
    kubectl logs mypod --previours #查看前一个容器的日志

    kubectrl port-forward kubia-manual 8888:8080 #将机器的本地端口8888转发到pod的8080端口,访问:curl localhost:8888

    pod.yaml内容:
    apiVersion: vl
    kind: Pod
    metadata:
    name: kubia-manual-v2
    labels: #设置pod的标签
    creation method: manual
    env: prod
    spec:
    containers:
    - image: luksa/kubia
    name: kubia
    ports:
    - containerPort: 8080
    protocol: TCP


    kubectl label po kubia-manual creation_method=manual #为pod kubia-manual添加creation_method=manual 标签
    kubectl label po kubia-manual-v2 env=debug --overwrite #修改env=test为env=debug

    kubectl get po -l creation_method=manual #或者 !=、env in 、env notin
    kubectl get po -l env #列出含有env标签的所有pod
    kubectl get po -l ‘!env’ #列出不含有env标签的所有pod
    kubectl get po -l app=pc,rel=beat #标签选择器使用多个条件

    命名空间:
    具有相同名称的pod可以位于不同的namespace中
    kubectl get ns
    kubectl get po --namespace(或-n) kube-system
    kubectl create namespace custom-namespace #新建命名空间
    kubectl create -f kubia-manual.yaml -n custom-namespace #在命名空间内新建pod
    如果不指定命名空间, kubect 将在当前上下文中配置的默认命名空间中执行操作 。而当前上下文的命名空间和当前上下文本身都可以通过 kubectl config 命令进行更改

    kubectl delete po pod1 pod2 #删除多个pod
    kubectl delete po -l creation_method=manual #通过标签选择器删除pod


    RC存活探针:
    spec:
    containers:
    - image: luksa/kubia-unhealthy
    name: kubia
    livenessProbe: #在8080端口上执行http get请求,检查容器是否健康
    httpGet:
    path: /
    port: 8080
    initialDelaySeconds: 20 #容器启动后等待20s后再探测

    kubectl scale rc kubia --replicas=10 #更改rc副本为10
    kubectl edit rc kubia #编辑rc kubia yaml文件,修改spec.replicas=10也可以
    kubectl delete rc kubia --cascade=false #删除rc,不影响其管理的pod运行。删除rc后,这些pod将独立运行,不再受管理,但可以使用合适的标签选择器创建新的rc,重新进行管理

    kubectl get rs
    kubectl describe rs

    rs.yaml文件编写:
    selector:
    matchExpressions: #此选择器要求该pod包含名为“app”的标签,值必须是 kubia
    - key: app
    operator: In
    values:
    - kubia
    • In : Label的值 必须与其中 一个指定的values 匹配。
    • Notln : Label的值与任何指定的values 不匹配。
    • Exists : pod 必须包含一个指定名称的标签(值不重要)。使用此运算符时,不应指定 values字段。
    • DoesNotExist : pod不得包含有指定名称的标签。values属性不得指定 。
    如果你 指定了多个表达式,则所有这些表达式都必须为true才能使选择器与pod匹配。如果同时指定matchLabels和matchExpressions, 则所有标签都必须匹配,并且所有表达式必须计算为true以使该pod与选择器匹配


    DaemonSet可以指定pod在每个节点(或特定节点)上运行
    Job适合用任务成功完成后退出,而不是永久运行
    Job可以配置为pod串行运行5次,或10个pod并行运行
    Job运行时间也可以进行限制
    CronJob支持任务计划方式运行pod,CronJob资源会创建Job资源,然后job创建pod

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/15348205.html
Copyright © 2011-2022 走看看