首页 文章 精选 留言 我的

精选列表

搜索[k8s],共4083篇文章
优秀的个人博客,低调大师

k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

网络模型有了,如何实现呢? 为了保证网络方案的标准化、扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范。 CNI 是由 CoreOS 提出的容器网络规范,它使用了插件(Plugin)模型创建容器的网络栈。 CNI 的优点是支持多种容器 runtime,不仅仅是 Docker。CNI 的插件模型支持不同组织和公司开发的第三方插件,这对运维人员来说很有吸引力,可以灵活选择适合的网络方案。 目前已有多种支持 Kubernetes 的网络方案,比如 Flannel、Calico、Canal、Weave Net 等。因为它们都实现了 CNI 规范,用户无论选择哪种方案,得到的网络模型都一样,即每个 Pod 都有独立的 IP,可以直接通信。区别在于不同方案的底层实现不同,有的采用基于 VxLAN 的 Overlay 实现,有的则是 Underlay,性能上有区别。再有就是是否支持 Network Policy。 书籍: 1.《每天5分钟玩转Kubernetes》https://item.jd.com/26225745440.html 2.《每天5分钟玩转Docker容器技术》https://item.jd.com/16936307278.html 3.《每天5分钟玩转OpenStack》https://item.jd.com/12086376.html

优秀的个人博客,低调大师

部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)

上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。 安装 Pod 网络 要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信。 Kubernetes 支持多种网络方案,这里我们先使用 flannel,后面还会讨论 Canal。 执行如下命令部署 flannel: kubectlapply-fhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 添加 k8s-node1 和 k8s-node2 在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中: kubeadmjoin--tokend38a01.13653e584ccc1980192.168.56.105:6443 这里的--token来自前面kubeadm init输出的第 ⑨ 步提示,如果当时没有记录下来可以通过kubeadm token list查看。 kubeadm join执行如下: 根据提示,我们可以通过kubectl get nodes查看节点的状态。 目前所有节点都是NotReady,这是因为每个节点都需要启动若干组件,这些组件都是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过如下命令查看 Pod 的状态: kubectlgetpod--all-namespaces Pending、ContainerCreating、ImagePullBackOff都表明 Pod 没有就绪,Running才是就绪状态。我们可以通过kubectl describe pod <Pod Name>查看 Pod 具体情况,比如: kubectldescribepodkube-flannel-ds-v0p3x--namespace=kube-system 为了节省篇幅,这里只截取命令输出的最后部分,可以看到在下载 image 时失败,如果网络质量不好,这种情况是很常见的。我们可以耐心等待,因为 Kubernetes 会重试,我们也可以自己手工执行docker pull去下载这个镜像。 等待一段时间,image 都成功下载后,所有 Pod 会处于Running状态。 这时,所有的节点都已经Ready,Kubernetes Cluster 创建成功,一切准备就绪。 小结 本章通过 kubeadm 部署了三节点的 Kubernetes 集群,后面章节我们都将在这个实验环境中学习 Kubernetes 的各项技术。 本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/2060919

优秀的个人博客,低调大师

部署 k8s Cluster(上)- 每天5分钟玩转 Docker 容器技术(118)

我们将部署三个节点的 Kubernetes Cluster。 k8s-master 是 Master,k8s-node1 和 k8s-node2 是 Node。 所有节点的操作系统均为 Ubuntu 16.04,当然其他 Linux 也是可以的。 官方安装文档可以参考https://kubernetes.io/docs/setup/independent/install-kubeadm/ 注意:Kubernetes 几乎所有的安装组件和 Docker 镜像都放在 goolge 自己的网站上,这对国内的同学可能是个不小的障碍。建议是:网络障碍都必须想办法克服,不然连 Kubernetes 的门都进不了。 安装 Docker 所有节点都需要安装 Docker。 apt-getupdate&&apt-getinstalldocker.io 安装 kubelet、kubeadm 和 kubectl 在所有节点上安装 kubelet、kubeadm 和 kubectl。 kubelet 运行在 Cluster 所有节点上,负责启动 Pod 和容器。 kubeadm 用于初始化 Cluster。 kubectl 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。 apt-getupdate&&apt-getinstall-yapt-transport-httpscurl-shttps://packages.cloud.google.com/apt/doc/apt-key.gpg|apt-keyadd-cat<<EOF>/etc/apt/sources.list.d/kubernetes.listdebhttp://apt.kubernetes.io/kubernetes-xenialmainEOFapt-getupdateapt-getinstall-ykubeletkubeadmkubectl 用 kubeadm 创建 Cluster 完整的官方文档可以参考https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ 初始化 Master 在 Master 上执行如下命令: kubeadminit--apiserver-advertise-address192.168.56.105--pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address指明用 Master 的哪个 interface 与 Cluster 的其他节点通信。如果 Master 有多个 interface,建议明确指定,如果不指定,kubeadm 会自动选择有默认网关的 interface。 --pod-network-cidr指定 Pod 网络的范围。Kubernetes 支持多种网络方案,而且不同网络方案对--pod-network-cidr有自己的要求,这里设置为10.244.0.0/16是因为我们将使用 flannel 网络方案,必须设置成这个 CIDR。在后面的实践中我们会切换到其他网络方案,比如 Canal。 初始化过程如下: ① kubeadm 执行初始化前的检查。 ② 生成 token 和证书。 ③ 生成 KubeConfig 文件,kubelet 需要这个文件与 Master 通信。 ④ 安装 Master 组件,会从 goolge 的 Registry 下载组件的 Docker 镜像,这一步可能会花一些时间,主要取决于网络质量。 ⑤ 安装附加组件 kube-proxy 和 kube-dns。 ⑥ Kubernetes Master 初始化成功。 ⑦ 提示如何配置 kubectl,后面会实践。 ⑧ 提示如何安装 Pod 网络,后面会实践。 ⑨ 提示如何注册其他节点到 Cluster,后面会实践。 配置 kubectl kubectl 是管理 Kubernetes Cluster 的命令行工具,前面我们已经在所有的节点安装了 kubectl。Master 初始化完成后需要做一些配置工作,然后 kubectl 就能使用了。 依照kubeadm init输出的第 ⑦ 步提示,推荐用 Linux 普通用户执行 kubectl(root 会有一些问题)。 我们为 ubuntu 用户配置 kubectl: su - ubuntumkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config 为了使用更便捷,启用 kubectl 命令的自动补全功能。 echo"source<(kubectlcompletionbash)">>~/.bashrc 这样 ubuntu 用户就可以使用 kubectl 了。 下节我们将安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。 书籍: 1.《每天5分钟玩转Docker容器技术》https://item.jd.com/16936307278.html2.《每天5分钟玩转OpenStack》https://item.jd.com/12086376.html 本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/2060068

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册