IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Kubernetes 最小化微服务漏洞 gVisor与Containerd集成 -> 正文阅读

[系统运维]Kubernetes 最小化微服务漏洞 gVisor与Containerd集成

已经测试过的应用和工具: https://gvisor.dev/docs/user_guide/compatibility/

这里可以看到现有的哪些应用可以使用gvisor,因为官方已经给你测试了。除此之外不能够百分之百去使用。除此之外还有哪些工具是可以使用的。

?

安全沙箱运行容器:gVisor与Containerd集成


?由docker切换到containerd容器引擎(安装conatinerd------>kubelet安装containerd----->最后验证)

在切换之前先将docker给停止了

[root@k8s-node1 ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
[root@k8s-node1 ~]# pkill docker
[root@k8s-node1 ~]# ps -ef | grep docker
root     129602 126435  0 03:13 pts/0    00:00:00 grep --color=auto docker
1、准备配置
[root@k8s-node1 ~]# cat > /etc/sysctl.d/99-kubernetes-cri.conf << EOF
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> net.bridge.bridge-nf-call-ip6tables = 1
> EOF


[root@k8s-node1 ~]# sysctl --system
* Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
* Applying /usr/lib/sysctl.d/50-default.conf ...
2、安装
[root@k8s-node1 ~]# cd /etc/yum.repos.d
[root@k8s-node1 yum.repos.d]# yum install -y containerd.io

[root@k8s-node1 yum.repos.d]# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--2021-07-15 03:19:27--  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 115.223.27.223, 115.238.192.241, 115.238.192.242, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|115.223.27.223|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2081 (2.0K) [application/octet-stream]
Saving to: ?.ocker-ce.repo.1?

100%[===========================================================================================>] 2,081       --.-K/s   in 0s      

2021-07-15 03:19:28 (185 MB/s) - ?.ocker-ce.repo.1?.saved [2081/2081]

#生成配置文件
[root@k8s-node1 yum.repos.d]# cd /etc/containerd/
[root@k8s-node1 containerd]# ls
config.toml
[root@k8s-node1 containerd]# containerd config default > config.toml 
3、修改配置文件
? pause镜像地址(负责pod网络的镜像,需要修改地址,要不然下载不了)
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.2"

? Cgroup驱动改为systemd

          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
             SystemdCgroup = true
? 增加runsc容器运行时
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
          runtime_type = "io.containerd.runsc.v1"
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
          runtime_type = "io.containerd.runc.v2"
          runtime_engine = ""
          runtime_root = ""
? 配置docker镜像加速器
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://b9pmyelo.mirror.aliyuncs.com"]
[root@k8s-node1 containerd]# systemctl restart containerd
[root@k8s-node1 containerd]# ps -ef | grep containerd
root       2887      1  1 03:41 ?        00:00:00 /usr/bin/containerd

?4、配置kubelet使用containerd

这个文件是kubelet为用户提供扩展参数的一个地方,在这里可以加入扩展参数,kubelet就可以去使用了。

=--container-runtime=remote  指定容器运行时为远程,默认支持的是docker,在后续版本对docker支持启用 
--container-runtime-endpoint=unix:///run/containerd/containerd.sock 
--cgroup-driver=systemd

docker有docker的管理命令,containerd有它自己的管理命令,

containerd也有 ctr 管理工具,但功能比较简单,一般使用crictl工具检查和调试容器。
项目地址:https://github.com/kubernetes-sigs/cri-tools/
准备crictl连接containerd配置文件:
cat > /etc/crictl.yaml << EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
EOF

下面是docker与crictl命令对照表:

?

RuntimeClass 是一个用于选择容器运行时配置的特性,容器运行时配置用于运行 Pod 中的容器。
创建RuntimeClass:
apiVersion: node.k8s.io/v1 # RuntimeClass 定义于 node.k8s.io API 组
kind: RuntimeClass
metadata:
  name: gvisor # 用来引用 RuntimeClass 的名字
handler: runsc # 对应的 CRI 配置的名称


root@k8s-master:~# kubectl apply -f cks_runtimeclass.yaml 
runtimeclass.node.k8s.io/gvisor created
root@k8s-master:~# kubectl get runtimeclass
NAME     HANDLER   AGE
gvisor   runsc     14s

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 23:52:40  更:2021-07-15 23:53:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 0:36:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码