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

    ===========service
    查看资源的定义:kubectl explain svc kubectl explain svc.spec

    可以通过clusterip来指定svc的ip,否则svc的ip是动态分配的

    服务名称:svc_name.svc_namespace.集群域名, 如 redis.default.svc.cluster.local.
    其中集群域名为:svc.cluster.local.

    定义服务时,若为nodeip,则要指定nodeport,在describe svc时,会看到两个端口,一个是port,一个是nodeport

    给svc的sessionAffinity赋值为ClientIP后,来自同一个clien的请求会发送到同一个pod

    查看coredns的svc: kubectl get svc -n kube-system

    查看监听的端口: ss -tnl
    查看节点资源占用情况:kubectl top nodes
    docker compose 适合单机编排
    docker swarm 适合集群编排
    deployment只能管理无状态pod,有状态的需要用statefulset
    HPA:水平伸缩控制器
    service是靠标签选择器来关联对应的pod的
    通过kube-proxy管理service
    k8s有三种网络:节点网络、集群网络(service网络)和pod网络

    flannel:支持网络配置
    calico:既支持网络配置,还支持网络策略
    ========helm
    https://helm.sh
    官方可用的chart列表:https://hub.kubeapps.com
    查看helm仓库:helm repo list
    校验chart格式是否正确:
    helm verify chart的目录
    helm lint chart的目录

    查看chart的详细信息:helm inspect chart的目录
    查看release的详细信息:helm status release名称

    在chart中可以添加requirements.yaml,来定义依赖的chart,或者将依赖的chart放到
    charts目录下

    https://docs.helm.sh/developing_charts/#charts
    ======= 配置代理,百度
    export HTTPS_PROXY='http://www.ik8s.io:10080'
    export NO_PROXY='172.20.0.0/16,127.0.0.0/8'

    ==========创建PV PVC 

     

    ==============

    通过systemctl enable实现开机自启

    rpm -ql 包名 查看一个包安装了哪些文件

    查看k8s的组件是否正常:kubectl get cs

    在pod中 cat /etc/resolv.conf 查看 dns服务器的ip

    查看更新过程:kubectl rollout satus deployment myapp

    查看资源定义都有哪些字段用explain: kubectl explain pods ,返回结果里有对应的apiversion

    在yaml中,command的值是列表

    显示标签: kubectl get pods --show-lables
    过滤:显示有标签app的pod: kubectl get pods -l app
    显示有标签app的pod,以及标签的值: kubectl get pods -l app --show-labels

    显示标签app的值是zcy的pod:kubectl get pods -l app=zcy --show-labels

    kubectl get pods -l name,age
    kubectl get pods -l name=zcy,age=18
    kubectl get pods -l "name in/notin (zcy,abc)"

    annotations:与label不同的地方在于:
    它不能用于挑选资源对象,仅用于为对象提供“元数据”

    查看版本:kubectl rollout history deployment myapp-deployment

    emptyDir: pod删除后,存储卷也就没了。可以将宿主机的内存给pod当缓存用

    configmap 通过环境变量注入时,若configmap的值变了,pod中环境变量的值是不变的,因为环境变量是在pod创建时生成的
    configmap 通过存储卷的方式注入时,若configmap变了,存储卷也会变的

    secret是将数据进行了base64编码,可以通过解码查看实际的值
    如 echo *** | base64 -d

    定义statfulset时,需要定义headless svc 和pvc,headless svc 用来保证pod的名称是固定的,不是随机的

    stateful创建的pod的名字是可以直接被解析的:pod_name.svc_name.ns.svc.cluster.local

    stateful支持分区更新,如
    sts.spec.updateStrategy.rollingUpdate.partition=3,则大于等于3的pod才会被更新

    起代理:kubectl proxy --port=8080
    因为kubectl有认证信息,curl请求发给代理后,代理会携带上认证信息,然后把请求发送给api server

    #快速得到一个yaml模板,支持create的资源都可以通过下面这种方式
    kubectl create serviceaccount mysa -o yaml --dry-run >> mycout.yaml
    kubectl get pods **** -n namespace -0 yaml --export >> mypod.yaml


    kubectl describe 某个资源,会发现它包含一个secrete类型的token,这个token是用来认证的,和api server打交道时需要带上这个token
    在没个namespace下面执行kubectl get secret都会看到有个叫token的secrete

  • 相关阅读:
    八、UIViewController们之间的协作——Segue
    七、UIViewController导航栏
    六、APP开发的主角——UIViewController
    五、UI开发之核心基础——约束(深入)
    四、UI开发之核心基础——约束(实用)
    三、UI开发之核心基础——约束(入门)
    iOS开发笔记错误集
    Unity中内嵌网页插件UniWebView使用总结
    利用Aspose.Word控件实现Word文档的操作
    ReSharper 配置及用法(ZHUANG)
  • 原文地址:https://www.cnblogs.com/testzcy/p/14383282.html
Copyright © 2011-2022 走看看