精选列表

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

部署 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 架构 - 每天5分钟玩转 Docker 容器技术(122)

为了帮助大家更好地理解 Kubernetes 架构,我们部署一个应用来演示各个组件之间是如何协作的。 执行命令 kubectlrunhttpd-app--image=httpd--replicas=2 等待一段时间,应用部署完成。 Kubernetes 部署了 deploymenthttpd-app,有两个副本 Pod,分别运行在k8s-node1和k8s-node2。 详细讨论整个部署过程。 ① kubectl 发送部署请求到 API Server。 ② API Server 通知 Controller Manager 创建一个 deployment 资源。 ③ Scheduler 执行调度任务,将两个副本 Pod 分发到 k8s-node1 和 k8s-node2。 ④ k8s-node1 和 k8s-node2 上的 kubectl 在各自的节点上创建并运行 Pod。 补充两点: 应用的配置和当前状态信息保存在 etcd 中,执行kubectl get pod时 API Server 会从 etcd 中读取这些数据。 flannel 会为每个 Pod 都分配 IP。因为没有创建 service,目前 kube-proxy 还没参与进来。 Kubernetes 架构就讨论到这里。从下节开始,我们将通过实践深入学习 Kubernetes 的各种特性。作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用。下节见。 书籍: 1.《每天5分钟玩转Docker容器技术》https://item.jd.com/16936307278.html2.《每天5分钟玩转OpenStack》https://item.jd.com/12086376.html 本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/2063499

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

部署 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

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。