k8s在不同或相同namespace下服务间访问
同一个名称空间 k8s给每个内部微服务提供了一个内部使用的host,就是.。可以在代码中直接访问[http://.:],来达到访问另一个服务。如果是部署到默认namespace下的服务,namespace为“default”。 不同名称空间 无论是相同还是不同名称空间都可以通过{SERVICE_NAME}.{NAMESPACE_NAME}.svc.cluster.local或者{SERVICE_NAME}.{NAMESPACE_NAME}jinx访问 所以,Namespace是形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。 例子: "default.svc.cluster.local"。"default" 是我们正在操作的命名空间。 "svc" 表示这是一个 Service。"cluster.local" 是你的集群域,在你自己的集群中可能会有所不同。
k8s学习-kubectl命令行jsonpath的使用
转自: https://blog.51cto.com/u_11555417/5521927 参考官网手册 说明 JSONPath 支持 | Kubernetes JSONPath 模板由 {} 包起来的 JSONPath 表达式组成。Kubectl 使用 JSONPath 表达式来过滤 JSON 对象中的特定字段并格式化输出。 除了原始的 JSONPath 模板语法,以下函数和语法也是有效的: 使用双引号将 JSONPath 表达式内的文本引起来。 使用range,end 运算符来迭代列表。 使用负片索引后退列表。负索引不会“环绕”列表,并且只要-index + listLength> = 0 就有效。 通过kubectl命令行配合jsonpath就能获取过滤到我们关注的信息。 函数 描述 示例 结果 text 纯文本 kind is {.kind} kind is List @ 当前对象 {@} 与输入相同 . or [] 子运算符 {.kind} or {['...
k8s知识补充记录
网站记录K8S训练营kubectl自动补全以及命令大全kubectl自动补全以及命令大全github地址k8s中文文档1k8s中文文档2k8s API 参考关于Deployment的资源文件编写123451,在Deployment中必须写matchLables, 2,在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应, 3,template里面定义的内容会应用到下面所有的副本集里面,在template.spec.containers里面不能定义labels标签. 指令记录k8s 清理namespace(命名空间)资源12345671. 查找所有当前namespace下的资源kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n <ns>2. 删除对应资源kubectl get ingress -n ...
k8s配置host的方式
静态配置yaml配置镜像中的 Hosts 文件1234567#-------------------------------------------hostAliases: - hostnames: - "sss" - "aaa" ip: 127.0.0.1#------------------------------------------- 动态配置通过写入环境变量,然后在command里拼接到/etc/hosts文件中12345678910# 写入环境benvFrom: - configMapRef: name: sopei-biz-configmap# 读取的环境变量拼接到host文件中command: ["/bin/sh","-c"]args: - | echo gateway-orange-sopei.sopei-biz.svc.cluster.local $web_domain >> /etc/hos...
kube-apiserver的安装和运行以及参数说明
kube-apiserver安装和运行安装(可直接下载二进制文件或kube-apiserver镜像) 二进制文件下载如下: 1234# k8s版本对应: - https://github.com/kubernetes/kubernetes/releaseswget https://storage.googleapis.com/kubernetes-release/release/<这里改成对应k8s版本>/bin/linux/amd64/kube-apiserver- mv xxx /usr/local/bin- chmod +x kube-apiserver 运行(kube-apiserver如何正确访问这里有问题,以后调研下) API Server 是通过提供的 kube-apiserver 二进制文件直接运行的,下面的例子指定了 service 分配的 ip 范围,etcd 的地址,和对外提供服务的 ip 地址: 12345678/usr/bin/kube-apiserver \--service-cluster-ip-range=10.0.2.15/...
kube-proxy
四层与七层1、四层负载均衡(例如nginx中直接配置stream,如下)1234567891011stream { upstream k3s { least_conn; server 10.0.2.0:6443 max_fails=3 fail_timeout=5s; server 10.0.2.6:6443 max_fails=3 fail_timeout=5s; } server { listen 6443; proxy_pass k3s; }} 0、负载均衡器用 ip+port 接收请求,再直接转发到后端对应服务上 1、四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53; 2、四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口号) 3、四层负载均衡可以解决七层负载均衡高可用问题;(多台后端七层负载均衡能同事的使用) 4、四层的转发效率比七层的高得多,但仅支持tcp...
kubeconfig文件详解
在node节点上可以执行kubectl命令吗? 12[root@k8s-node1 ~]# kubectl get nodeThe connection to the server localhost:8080 was refused - did you specify the right host or port? localhost:8080 这个端口是k8s api(kube-apiserver非安全端口)的端口,*在master上面可以执行成功其实走的是配置文件。但是在node上连接的是本地的非安全端口。* 其实还有一个对外端口是6443,这个是kube-apiserver监听的,masterip:6443安全端口 12[root@k8s-master ~]# netstat -tpln | grep 6443tcp6 0 0 :::6443 :::* LISTEN 92617/kube-apiserve 什么叫安全端口,什么叫非安全端口 kube-apiserve...
kubeconfig文件详解
Kubectl 安装参考: https://blog.csdn.net/All_Dream_and_you/article/details/124343080 官方文档 kubectl for linux 操作系统:centos7.5命令行: bash 安装 Kubectl123456789101112131415161718#下载安装包 如果需要指定版本 使用版本号替换 $(curl -L -s https://dl.k8s.io/release/stable.txt) 即可curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"#验证可执行文件#下载校验和curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"...
kubernetes 安装 ingress nginx controller
参考:https://www.cnsre.cn/posts/210902330007 前言Service可能会有很多,如果每个资源都绑定一个 node port的话,主机则需要开放外围的端口进行服务调用,管理上会比较混乱。 比较优雅的方式是通过一个外部的负载均衡器,比如 nginx ,绑定固定的端口比如80,然后根据域名/服务名向后面的Service Ip转发,但是这里对问题在于:当有新服务加入的时候如何修改 Nginx 配置? 手动改或者 Rolling Update Nginx Pod 都是不现实的。 对于这个问题, k8s 给出的七层解决方案是:Ingress ingress-nginxingress nginx 官方网站 ingress nginx 仓库地址 ingress-nginx v1.0 最新版本 v1.0 适用于 Kubernetes 版本 v1.19+ (包括 v1.19 ) Kubernetes-v1.22+ 需要使用 ingress-nginx>=1.0,因为 networking.k8s.io/v1beta 已经移除 直接部署 ingre...
kubernetes的master节点挂了对整个集群有什么影响
如果master挂掉,已经在节点上运行起来的pod还是可以继续对外提供服务,但是诸如动态扩展,部署新的服务,pod等与调度和管理相关的工作是干不了的。 k8s集群相关的数据都存储在etcd(一些类似k3s等发行版可存储在mysql/postgre)上,master本身属于无状态服务,k8s支持多master结构来达到HA。
