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

  • 相关阅读:
    P1613 跑路
    数据挖掘-聚类分析(Python实现K-Means算法)
    使用scikit-learn 估计器分类
    数据挖掘-集成学习
    数据挖掘-关联分析 Apriori算法和FP-growth 算法
    scikit-learn 中常用的评估模型
    数据挖掘---支持向量机(SVM)
    数据挖掘-KNN-K最近邻算法
    数据挖掘-决策树
    数据挖掘-逻辑Logistic回归
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/15348205.html
Copyright © 2011-2022 走看看