PouchContainer
  • 简介
  • 概述
    • PouchContainer 入门
    • 容器技术概述
    • PouchContainer 特点
  • 使用 PouchContainer 开发
    • 在镜像中构建应用
    • 镜像发布
    • 镜像运行
  • 使用 Kubernetes 管理 PouchContainer
    • 关于 Kubernetes
    • 借助 PouchContainer 部署强隔离 Pod
    • 如何定制 CRI
    • 使用 CNI 插件管理网络
    • 使用 CSI 插件管理存储
  • PouchContainer 隔离性
    • Diskquota
    • LXCFS
    • runV
    • 网络
    • 内核级隔离
  • 网络配置
    • 网络配置概述
    • 网络配置
      • Bridge
      • Host
      • Overlay
      • Macvlan
      • 禁用网络
    • 其他配置
      • IPv6
      • iptables
      • 代理服务器
  • 存储配置
    • 存储配置概述
    • Volume
    • Bind mounts
    • tmpfs mounts
    • 存储插件
      • Ceph
      • 远程存储
    • FAQ
  • 监控
    • 容器监控
    • 服务监控
    • 普罗米修斯
  • 日志
    • 查看日志
    • 日志配置
    • 日志插件
  • 安全
    • 安全概述
    • 服务保护
    • 客户端认证
    • 可信镜像
    • 杀毒软件与 PouchContainer
    • 应用加固
Powered by GitBook
On this page
  • Flannel
  • Calico
  • 验证网络的正确性
  1. 使用 Kubernetes 管理 PouchContainer

使用 CNI 插件管理网络

Previous如何定制 CRINext使用 CSI 插件管理存储

Last updated 6 years ago

在部署Kubernetes时,网络部分是一个独立的模块。在Kubernetes社区里,在pod间创建网络的常用方式是CNI插件。目前Kubernetes社区里比较稳定的CNI插件有:

在创建CNI网络前,我们建议先阅读。

Flannel

通过运行sysctl net.bridge.bridge-nf-call-iptables=1将/proc/sys/net/bridge/bridge-nf-call-iptables的值置为1,从而将桥接模式的IPv4流量传输给iptable链。对于用户来说,用flannel来创建CNI网络非常简单。只需要在主节点上执行一条简单的命令:

kubectl create -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml

如果你无法连接到网络,请确保在本地的文件夹下存储了以上文件。然后执行kubectl create -f kube-flannel.yml命令,就能创建flannel网络。

Calico

目前,Calico只支持amd64架构的系统。对于用户来说,用Calico来创建CNI网络非常简单。只需要在主节点上执行一条简单的命令:

kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

验证网络的正确性

$ cat pouch.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pouch
spec:
  replicas: 1
  selector:
    matchLabels:
      pouch: nginx
  template:
    metadata:
      labels:
        pouch: nginx
    spec:
      containers:
      - name: pouch
        image: docker.io/library/nginx:latest
        ports:
        - containerPort: 80

$ kubectl create -f pouch.yaml
deployment "pouch" created
$
$ kubectl get pods -o wide
NAME                     READY     STATUS    RESTARTS   AGE       IP           NODE
pouch-7dcd875d69-gq5r9   1/1       Running   0          44m       10.244.1.4   master
$
$ curl 10.244.1.4
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

当看到nginx的输出时,祝贺你成功运行了开启CNI网络的Kubernetes集群。

flannel
calico
Install a pod network add-on