[k8s] kubelet单组件启动静态pod

kubelet单组件启动静态pod

无需k8s其他组件,单独下载kubelet的二进制,可以启动静态pod.

静态pod不受api管理,kubectl get po可以看到,但是kubectl delete pod 删除后,出去pending状态, 节点容器并没有删除,要想删除,去节点操作kubelet相对应的目录文件

静态pod创建有2中方法: 最常用的配置文件方法,还有http方法.

配置文件形式

- 获取pause镜像787k
docker pull lanny/gcr.io_google_containers_pause-amd64:3.0
docker tag lanny/gcr.io_google_containers_pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0 

- 启动kubelet
mkdir -p /root/k8s/manifests
kubelet --allow-privileged=true --pod-manifest-path=/root/k8s/manifests --cluster-dns=10.254.0.2 --cluster-domain=cluster.local --v=2

- manifests静态pod目录下新建busybox-count.yml
[[email protected] ~]# cat /root/k8s/manifests/busybox-count.yml
apiVersion: v1
kind: Pod
metadata:
  name: counter
spec:
  containers:
  - name: count
    image: busybox
    args: [/bin/sh, -c,
            'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']

- 自动启动成功
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS               NAMES
bf0d15b72b5e        busybox                                    "/bin/sh -c 'i=0; ..."   4 minutes ago       Up 4 minutes                            k8s_count_counter-n1.ma.com_default_0f4803e09eeb6a864cc007da1ad165f3_0
92d6592d972f        gcr.io/google_containers/pause-amd64:3.0   "/pause"                 4 minutes ago       Up 4 minutes                            k8s_POD_counter-n1.ma.com_default_0f4803e09eeb6a864cc007da1ad165f3_0

- kubelet退出后,pod依旧running
- docker rm容器后,这个容器exit状态,kubelet会重新runing一个容器

- busybox+pause=pod 共享ip协议栈(IP+mac一样)
- pause的ip和mac
[[email protected] ~]# docker inspect 92d6592d972f|grep -i ipaddr
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

[[email protected] ~]# docker inspect 92d6592d972f|grep -i mac
            "MacAddress": "02:42:ac:11:00:02",
                    "MacAddress": "02:42:ac:11:00:02",

- busybox的ip和mac
[[email protected] ~]# docker exec bf0d15b72b5e ip ad
6: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
- kubelet启动参数里的dns和域会被注入进去.
[[email protected] ~]# docker exec -it bf0d15b72b5e sh
/ # cat /etc/resolv.conf
nameserver 10.254.0.2
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

/ # cat /etc/hosts
172.17.0.2  counter-n1.ma.com
/ #

docker的dns设置

/usr/bin/dockerd --insecure-registry=10.233.0.0/18 --graph=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5 --iptables=false --dns 10.233.0.3 --dns 114.114.114.114 --dns-search default.svc.cluster.local --dns-search svc.cluster.local --dns-opt ndots:2 --dns-opt timeout:2 --dns-opt attempts:2

docker run -it --rm busybox
 / # cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local
nameserver 10.233.0.3
nameserver 114.114.114.114

http方式

kubelet会定期向这个url请求yaml,来更新pod

 --manifest-url string                                                                                       URL for accessing the container manifest

原文地址:https://www.cnblogs.com/iiiiher/p/8151032.html

时间: 2024-12-18 16:24:57

[k8s] kubelet单组件启动静态pod的相关文章

18.Kubernetes深入Pod之静态Pod

静态Pod 静态Pod是由kubectl进行管理的仅存于特定Node上的Pod.他们不能通过API Server惊醒管理,无法与ReplicationController.Deployment或者DaemonSet进行关联,并且kubelet也无法对他们进行健康检查.静态Pod总是由kubectl进行创建,并且总是在kubelet所在的Node上运行. 创建Pod有两种方式:配置文件或HTTP方式,这里只说常用的配置文件方式 配置文件方式 在目录/etc/kubelet.d中放入static-w

MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序,这里介绍两种在对话框picthre控件中显示BMP图片的最简单基础的方法. ~~方法可能并不完美,高手忽略,但是提供一种能运行的方法,希望对刚接触这方面知识的同学有所帮助.可能你觉得文章过于简单或者有些过于详细叙述(点到即可我并不反对),但也为哪些入门同学想想,当初自己也是一头雾水. 一.静态显示bmp图片

通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题

我在通过 html()获取对应节点的内容,发现一个问题,获取到的 form表单组件的内容值是初始加载的值,而不是经过用户修改后的值.例如页面加载时组件<input type="text" value="111111"/>,用户更改表单的值为 222222,通过父节点的html()方法获取这个组件,预期应该是<input type="text" value="222222"/>,可结果却是初始时的样子&l

十四. k8s资源需求和限制, 以及pod驱逐策略

目录 容器的资源需求和资源限制 QoS Classes分类 Guaranteed Burstable Best-Effort kubernetes之node资源紧缺时pod驱逐机制 Qos Class优先级排名 可压缩资源与不可压缩资源 存储资源不足 举例 内存资源不足 举例 Node OOM (Out Of Memory) 总结 参考链接 容器的资源需求和资源限制 requests:需求,最低保障, 保证被调度的节点上至少有的资源配额 limits:限制,硬限制, 容器可以分配到的最大资源配额

【K8S】K8S-网络模型、POD/RC/SVC YAML 语法官方文档

K8S-网络模型.POD/RC/SVC YAML 语法官方文档 Kubernetes - Production-Grade Container Orchestration kubernetes/kubernetes: Production-Grade Container Scheduling and Management Posts containing 'yaml' - Stack Overflow how to pass a configuration file thought yaml o

K8S使用Statefulset管理集群pod模式(7)

上次我们说到了deployment来管理pod容器的副本数量,如果挂掉之后容器再次启动就可以了,但是如果要是启动的是mysql集群.zookeeper集群.etcd这种集群,里面都有id号,这种有关联的,如果一旦挂掉之后,在启动之后呢,集群id是否会变化呢?答案是肯定会变的.那有没有另外的一种控制器模式吗?当然k8s会给我吗提供的.[statefulset]那什么场景需要使用StatefulSet呢?官方给出的建议是,如果你部署的应用满足以下一个或多个部署需求,则建议使用StatefulSet

k8s部署prometheus和grafana监控pod和机器资源(11)

之前咱们有讲过k8s的网络模式,一定要多练习今天我们来讲解一下监控具体的yaml我已经放到百度网盘了,大家可以直接下载使用链接:https://pan.baidu.com/s/16LLvtAM5EJaiy0AnmMTjjQ 提取码:xw54 grafana这个工具是一个图形化的界面,主要负责展示信息,功能非常强大,可以结合prometheus.zabbix.进行收集暂时,另外包括mysql,zk.etcd,nginx这些数据都可以收集展示prometheus是一个时序的数据库,什么是时序的数据库

【转】VS2010/MFC编程入门之二十(常用控件:静态文本框)

本文转自鸡啄米:http://www.jizhuomi.com/software/177.html 感 谢鸡啄米对本文的贡献. 上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控件.列表控件.树形控件和进度条控件等等.本节教程先来讲解静态文本框的使用. 控件的通知消息 在将静态文本框的使用之前,先大概讲讲控件的通知消息. 当控件有事件发

Windows static控件(静态文本框控件)

文本不克不及主动换行,超越窗口规模会被隐蔽: 每次更改文本都要先擦除配景再从新输入,比拟费事. 实践开辟中普通运用静态文本框控件来输入文本.静态文本框是Windows 的一种规范控件,可以用来在窗口上显示一段文本,而且文本轻易遭到掌握.除了静态文本框,Windows的规范控件还有许多种,例如按钮.下拉菜单.单选按钮.复选框等.其实,控件也是一种窗口,也运用 CreateWindow 函数来创立.然则它们运用的窗口类的名字比拟特别,是由Windows预界说的:静态文本框控件的窗口类名是static