searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

minikube实践kata容器

2024-09-11 09:53:31
12
0

认识Minikube


Minikube是一个开源工具,可用于本地开发环境中快速搭建一个单节点的Kubernetes集群。支持多种虚拟化技术,在不同平台上都可以运行,如VirtualBox、Hyper-V、KVM等。

 

认识Kata

 
Kata Containers 是由蚂蚁集团开源的容器运行时,借助轻量级虚拟机(VM )构建安全的容器运行时。对比runc容器,Kata Containers 提供了更强的安全隔离以及性能隔离性。
 
 
 

minikube搭建k8s单点集群

 
测试环境:
ssj@dpvsbak:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:    20.04
Codename:    focal

 

minikube通过kvm2安装虚拟机承载node,并且在node上部署kata容器,相当于嵌套虚拟化。

 

启动命令:
$ minikube start --vm-driver kvm2 --memory 6144 --network-plugin=cni --enable-default-cni --container-runtime=cri-o --bootstrapper=kubeadm
 
安装kata容器:
$ git clone https://github.com/kata-containers/kata-containers.git
$ cd kata-containers/tools/packaging/kata-deploy
$ kubectl apply -f kata-rbac/base/kata-rbac.yaml
$ kubectl apply -f kata-deploy/base/kata-deploy.yaml

 

实践kata容器

需要额外等几分钟就绪:
$ podname=$(kubectl -n kube-system get pods -o=name | fgrep kata-deploy | sed 's?pod/??')
$ kubectl -n kube-system exec ${podname} -- ps -ef | fgrep infinity
 
 
 
 

验证一:创建kata容器:
$ cd kata-containers/tools/packaging/kata-deploy/runtimeclasses
$ kubectl apply -f kata-runtimeClasses.yaml
$ cd kata-containers/tools/packaging/kata-deploy/examples
$ kubectl apply -f test-deploy-kata-qemu.yaml


验证是否成功,通过以下命令区分kata使用的内核版本是不同于宿主机
$ podname=$(kubectl get pods -o=name | fgrep php-apache-kata-qemu | sed 's?pod/??')
$ kubectl exec ${podname} -- uname -a

 
 
验证二:通过nginx容器学习kata网络
ssj@dpvsbak:~/kata-containers/tools/packaging/kata-deploy/examples$ cat sj.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment-qemu
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      runtimeClassName: kata-qemu
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
 
 
 
 
官方介绍的kata网络示意图:
 
 
 
 
进入nginx pod对应的namespace,查看对应tc mirror规则
 
 
 
另外在node节点进入Pod,可以看到同样的10.244.0.28/16地址
 
 
简单测试一下nginx对应Pod提供的服务,可以在虚拟机node发出请求
 
0条评论
作者已关闭评论
张****金
1文章数
0粉丝数
张****金
1 文章 | 0 粉丝
张****金
1文章数
0粉丝数
张****金
1 文章 | 0 粉丝
原创

minikube实践kata容器

2024-09-11 09:53:31
12
0

认识Minikube


Minikube是一个开源工具,可用于本地开发环境中快速搭建一个单节点的Kubernetes集群。支持多种虚拟化技术,在不同平台上都可以运行,如VirtualBox、Hyper-V、KVM等。

 

认识Kata

 
Kata Containers 是由蚂蚁集团开源的容器运行时,借助轻量级虚拟机(VM )构建安全的容器运行时。对比runc容器,Kata Containers 提供了更强的安全隔离以及性能隔离性。
 
 
 

minikube搭建k8s单点集群

 
测试环境:
ssj@dpvsbak:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:    20.04
Codename:    focal

 

minikube通过kvm2安装虚拟机承载node,并且在node上部署kata容器,相当于嵌套虚拟化。

 

启动命令:
$ minikube start --vm-driver kvm2 --memory 6144 --network-plugin=cni --enable-default-cni --container-runtime=cri-o --bootstrapper=kubeadm
 
安装kata容器:
$ git clone https://github.com/kata-containers/kata-containers.git
$ cd kata-containers/tools/packaging/kata-deploy
$ kubectl apply -f kata-rbac/base/kata-rbac.yaml
$ kubectl apply -f kata-deploy/base/kata-deploy.yaml

 

实践kata容器

需要额外等几分钟就绪:
$ podname=$(kubectl -n kube-system get pods -o=name | fgrep kata-deploy | sed 's?pod/??')
$ kubectl -n kube-system exec ${podname} -- ps -ef | fgrep infinity
 
 
 
 

验证一:创建kata容器:
$ cd kata-containers/tools/packaging/kata-deploy/runtimeclasses
$ kubectl apply -f kata-runtimeClasses.yaml
$ cd kata-containers/tools/packaging/kata-deploy/examples
$ kubectl apply -f test-deploy-kata-qemu.yaml


验证是否成功,通过以下命令区分kata使用的内核版本是不同于宿主机
$ podname=$(kubectl get pods -o=name | fgrep php-apache-kata-qemu | sed 's?pod/??')
$ kubectl exec ${podname} -- uname -a

 
 
验证二:通过nginx容器学习kata网络
ssj@dpvsbak:~/kata-containers/tools/packaging/kata-deploy/examples$ cat sj.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment-qemu
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      runtimeClassName: kata-qemu
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
 
 
 
 
官方介绍的kata网络示意图:
 
 
 
 
进入nginx pod对应的namespace,查看对应tc mirror规则
 
 
 
另外在node节点进入Pod,可以看到同样的10.244.0.28/16地址
 
 
简单测试一下nginx对应Pod提供的服务,可以在虚拟机node发出请求
 
文章来自个人专栏
container_test
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0