当前位置: 首页 > news >正文

Kubernetes—k8s中Service实例出现污点

Service可以看做是一组同类的Pod对外的访问接口,借助Service,应用可以方便的实现服务发现和负载均衡。

Service在很多情况下只是一个概念,真正起作用的其实是kube-proxy服务进
程,每个Node节点上都运行了一个kube-proxy的服务进程。当创建Service的时候会通过API Server向etcd写入创建的Service的信息,而kube-proxy会基于监听的机制发现这种Service的变化,然后它会将最新的Service信息转换为对应的访问规则。

开启ipvs(必须安装ipvs内核模块,否则会降级为iptables):
kubectl edit cm kube-proxy -n kube-system 
kubectl delete pod -l k8s-app=kube-proxy -n kube-system 
# 测试ipvs模块是否开启成功 
ipvsadm -Ln

service使用实例

在使用Service之前,首先利用Deployment创建出3个Pod,注意要为Pod设置app=nginx-pod 的标签。
创建deployment.yaml文件,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pc-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
        - name: nginx
          image: nginx:1.17.1
          ports:
            - containerPort: 80

创建Deployment:

kubectl create -f deployment.yaml

查看Pod信息:

kubectl get pod -o wide --show-labels

在这里插入图片描述
结果发现ip显示none,没分配ip。
这是什么原因呢?
其实,是因为w我的三个集群节点(节点名分别为k8s-master、k8s-node02、k8s-node01)有污点了。

先查看污点名
[root@k8s-master ~]# kubectl describe node k8s-node02 |grep Taints
Taints:             node.kubernetes.io/unreachable:NoSchedule
[root@k8s-master ~]# kubectl describe node k8s-master |grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule
[root@k8s-master ~]# kubectl describe node k8s-node01 |grep Taints
Taints:             <none>

在这里插入图片描述

然后,用-去除污点后就好了
[root@k8s-master ~]# kubectl taint nodes k8s-master node-role.kubernetes.io/master:NoSchedule-
node/k8s-master untainted
[root@k8s-master ~]# kubectl taint nodes k8s-node02 node.kubernetes.io/unreachable:NoSchedule-
node/k8s-node02 untainted
[root@k8s-master ~]# kubectl describe node k8s-node01 |grep Taints
Taints:             <none>
[root@k8s-master ~]# kubectl taint nodes k8s-node01 <none>-
-bash: none: No such file or directory

(别忘了 - )
在这里插入图片描述

再查看的时候就有ip了
在这里插入图片描述

相关文章:

  • Chapter4.2:线性系统的根轨迹法
  • kvm快照和克隆
  • 【元胞自动机】基于元胞自动机模拟晶体生长附matlab代码
  • Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低
  • opencv--GrabCut
  • IT计算机企业如何使用科技虚拟员工规避人工操作风险
  • 【Android】-- 数据存储(一)(共享参数SharePreferences、数据库SQLite)
  • 文件包含漏洞——实例
  • Nacos详解
  • 洛谷刷题(普及-):谁拿了最多奖学金、ISBN 号码、开心的金明、数列、多项式输出
  • SpringMVC(二)
  • 操作系统第九讲——线程的实现方式和多线程模型
  • 爬虫——第一次笔记 urllib的基本使用 urllib一个类型,六个方法 urllib下载 urllib请求对象的定制
  • 神经网络电子书,神经网络入门书
  • 面试说:聊聊JavaScript中的数据类型
  • Angular 2 DI - IoC DI - 1
  • axios 和 cookie 的那些事
  • ES6 学习笔记(一)let,const和解构赋值
  • IOS评论框不贴底(ios12新bug)
  • Java精华积累:初学者都应该搞懂的问题
  • leetcode386. Lexicographical Numbers
  • Mysql优化
  • node.js
  • rabbitmq延迟消息示例
  • Terraform入门 - 1. 安装Terraform
  • Xmanager 远程桌面 CentOS 7
  • 阿里研究院入选中国企业智库系统影响力榜
  • 爱情 北京女病人
  • 机器学习学习笔记一
  • 基于 Babel 的 npm 包最小化设置
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 新手搭建网站的主要流程
  • HanLP分词命名实体提取详解
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $.ajax()参数及用法
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (二)fiber的基本认识
  • (二十三)Flask之高频面试点
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)VC++中ondraw在什么时候调用的
  • (转)程序员疫苗:代码注入
  • .libPaths()设置包加载目录
  • .NET 读取 JSON格式的数据
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net开发引用程序集提示没有强名称的解决办法
  • .net生成的类,跨工程调用显示注释