linux-tutorial/docker/kubernetes.html
Travis CI User e3e645a29a deploy
2021-05-13 17:44:54 +08:00

127 lines
28 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Kubernetes 应用指南 | LINUX-TUTORIAL</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/linux-tutorial/favicon.ico">
<meta name="description" content="数据库教程">
<link rel="preload" href="/linux-tutorial/assets/css/0.styles.45d9d031.css" as="style"><link rel="preload" href="/linux-tutorial/assets/js/app.79a38eea.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/4.fb6e0f89.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/16.ad565eae.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/5.cb43ecfb.js" as="script"><link rel="prefetch" href="/linux-tutorial/assets/js/10.7933187b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/11.b9b41530.js"><link rel="prefetch" href="/linux-tutorial/assets/js/12.70a5dba8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/13.857dcc43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/14.5a603a55.js"><link rel="prefetch" href="/linux-tutorial/assets/js/15.d217acb7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/17.d43e9f56.js"><link rel="prefetch" href="/linux-tutorial/assets/js/18.aa00ff43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/19.43ce44b3.js"><link rel="prefetch" href="/linux-tutorial/assets/js/20.5618e1ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/21.1c5a41d7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/22.fbe9fdf1.js"><link rel="prefetch" href="/linux-tutorial/assets/js/23.a4fb0e74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/24.e3a23b69.js"><link rel="prefetch" href="/linux-tutorial/assets/js/25.9896afe9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/26.96164082.js"><link rel="prefetch" href="/linux-tutorial/assets/js/27.391033bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/28.703f74c2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/29.02a952cb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/30.7e13628f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/31.c4652f75.js"><link rel="prefetch" href="/linux-tutorial/assets/js/32.05d2cbec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/33.3b265df8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/34.26330a03.js"><link rel="prefetch" href="/linux-tutorial/assets/js/35.417d706d.js"><link rel="prefetch" href="/linux-tutorial/assets/js/36.0ed775e0.js"><link rel="prefetch" href="/linux-tutorial/assets/js/37.34430c74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/38.87d5e0ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/39.7b648b3e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/40.3b7a219e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/41.e727eee9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/42.0134c187.js"><link rel="prefetch" href="/linux-tutorial/assets/js/43.175e982f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/44.72d90888.js"><link rel="prefetch" href="/linux-tutorial/assets/js/45.d49955bd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/46.a9c290ec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/47.cc639f04.js"><link rel="prefetch" href="/linux-tutorial/assets/js/48.98c78321.js"><link rel="prefetch" href="/linux-tutorial/assets/js/49.a7c3afed.js"><link rel="prefetch" href="/linux-tutorial/assets/js/50.22d8c542.js"><link rel="prefetch" href="/linux-tutorial/assets/js/51.28055fcd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/52.f8103df5.js"><link rel="prefetch" href="/linux-tutorial/assets/js/53.76541550.js"><link rel="prefetch" href="/linux-tutorial/assets/js/54.e78d2776.js"><link rel="prefetch" href="/linux-tutorial/assets/js/55.3ce3079c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/56.832958c9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/57.961ce896.js"><link rel="prefetch" href="/linux-tutorial/assets/js/58.6d6fbc82.js"><link rel="prefetch" href="/linux-tutorial/assets/js/59.d5e48112.js"><link rel="prefetch" href="/linux-tutorial/assets/js/6.c8f4721c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/60.7927b23b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/61.ee233f24.js"><link rel="prefetch" href="/linux-tutorial/assets/js/62.6ba50cc7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/63.9cbf9f2b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/64.0be148a4.js"><link rel="prefetch" href="/linux-tutorial/assets/js/65.c520257e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/66.f2335390.js"><link rel="prefetch" href="/linux-tutorial/assets/js/67.e5737218.js"><link rel="prefetch" href="/linux-tutorial/assets/js/68.46427a01.js"><link rel="prefetch" href="/linux-tutorial/assets/js/69.450417bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/7.046e5a1b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/70.072034d2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/8.77fb8967.js"><link rel="prefetch" href="/linux-tutorial/assets/js/9.ebfa537e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/vendors~flowchart.20a64d45.js"><link rel="prefetch" href="/linux-tutorial/assets/js/vendors~notification.ea176280.js">
<link rel="stylesheet" href="/linux-tutorial/assets/css/0.styles.45d9d031.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/linux-tutorial/" class="home-link router-link-active"><img src="images/dunwu-logo-100.png" alt="LINUX-TUTORIAL" class="logo"> <span class="site-name can-hide">LINUX-TUTORIAL</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link router-link-active">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link router-link-active">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Kubernetes 应用指南</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/linux-tutorial/docker/kubernetes.html#一、k8s-简介" class="sidebar-link">一、K8S 简介</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-功能" class="sidebar-link">K8S 功能</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-核心组件" class="sidebar-link">K8S 核心组件</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-核心概念" class="sidebar-link">K8S 核心概念</a></li></ul></li><li><a href="/linux-tutorial/docker/kubernetes.html#二、k8s-命令" class="sidebar-link">二、K8S 命令</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#客户端配置" class="sidebar-link">客户端配置</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#查找资源" class="sidebar-link">查找资源</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#资源管理" class="sidebar-link">资源管理</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#监控和日志" class="sidebar-link">监控和日志</a></li></ul></li><li><a href="/linux-tutorial/docker/kubernetes.html#参考资料" class="sidebar-link">参考资料</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="kubernetes-应用指南"><a href="#kubernetes-应用指南" class="header-anchor">#</a> Kubernetes 应用指南</h1> <blockquote><p>Kubernetes 是谷歌开源的容器集群管理系统 是用于自动部署,扩展和管理 Docker 应用程序的开源系统,简称 K8S。</p> <p>关键词: <code>docker</code></p></blockquote> <ul><li><a href="#%E4%B8%80k8s-%E7%AE%80%E4%BB%8B">一、K8S 简介</a></li> <li><a href="#%E4%BA%8Ck8s-%E5%91%BD%E4%BB%A4">二、K8S 命令</a></li> <li><a href="#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99">参考资料</a></li></ul> <h2 id="一、k8s-简介"><a href="#一、k8s-简介" class="header-anchor">#</a> 一、K8S 简介</h2> <p>K8S 主控组件Master 包含三个进程,都运行在集群中的某个节上,通常这个节点被称为 master 节点。这些进程包括:<code>kube-apiserver</code><code>kube-controller-manager</code><code>kube-scheduler</code></p> <p>集群中的每个非 master 节点都运行两个进程:</p> <ul><li>kubelet和 master 节点进行通信。</li> <li>kube-proxy一种网络代理将 Kubernetes 的网络服务代理到每个节点上。</li></ul> <h3 id="k8s-功能"><a href="#k8s-功能" class="header-anchor">#</a> K8S 功能</h3> <ul><li>基于容器的应用部署、维护和滚动升级</li> <li>负载均衡和服务发现</li> <li>跨机器和跨地区的集群调度</li> <li>自动伸缩</li> <li>无状态服务和有状态服务</li> <li>广泛的 Volume 支持</li> <li>插件机制保证扩展性</li></ul> <h3 id="k8s-核心组件"><a href="#k8s-核心组件" class="header-anchor">#</a> K8S 核心组件</h3> <p>Kubernetes 主要由以下几个核心组件组成:</p> <ul><li>etcd 保存了整个集群的状态;</li> <li>apiserver 提供了资源操作的唯一入口并提供认证、授权、访问控制、API 注册和发现等机制;</li> <li>controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;</li> <li>scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;</li> <li>kubelet 负责维护容器的生命周期,同时也负责 VolumeCVI和网络CNI的管理</li> <li>Container runtime 负责镜像管理以及 Pod 和容器的真正运行CRI</li> <li>kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡</li></ul> <p><img src="https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LDAOok5ngY4pc1lEDes%2F-LpOIkR-zouVcB8QsFj_%2F-LpOIpZIYxaDoF-FJMZk%2Farchitecture.png?generation=1569161437087842&amp;alt=media" alt="img"></p> <h3 id="k8s-核心概念"><a href="#k8s-核心概念" class="header-anchor">#</a> K8S 核心概念</h3> <p>K8S 包含若干抽象用来表示系统状态,包括:已部署的容器化应用和负载、与它们相关的网络和磁盘资源以及有关集群正在运行的其他操作的信息。</p> <p><img src="https://raw.githubusercontent.com/dunwu/images/dev/cs/os/kubernetes/pod.svg" alt="img"></p> <ul><li><code>Pod</code> - K8S 使用 Pod 来管理容器,每个 Pod 可以包含一个或多个紧密关联的容器。Pod 是一组紧密关联的容器集合,它们共享 PID、IPC、Network 和 UTS namespace是 K8S 调度的基本单位。Pod 内的多个容器共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。</li> <li><code>Node</code> - Node 是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机。为了管理 Pod每个 Node 节点上至少要运行 container runtime比如 docker 或者 rkt<code>kubelet</code><code>kube-proxy</code> 服务。</li> <li><code>Namespace</code> - Namespace 是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的 pods, services, replication controllers 和 deployments 等都是属于某一个 namespace 的(默认是 default而 node, persistentVolumes 等则不属于任何 namespace。</li> <li><code>Service</code> - Service 是应用服务的抽象,通过 labels 为应用提供负载均衡和服务发现。匹配 labels 的 Pod IP 和端口列表组成 endpoints由 kube-proxy 负责将服务 IP 负载均衡到这些 endpoints 上。每个 Service 都会自动分配一个 cluster IP仅在集群内部可访问的虚拟地址和 DNS 名,其他容器可以通过该地址或 DNS 来访问服务,而不需要了解后端容器的运行。</li> <li><code>Label</code> - Label 是识别 K8S 对象的标签,以 key/value 的方式附加到对象上key 最长不能超过 63 字节value 可以为空,也可以是不超过 253 字节的字符串。Label 不提供唯一性,并且实际上经常是很多对象(如 Pods都使用相同的 label 来标志具体的应用。Label 定义好后其他对象可以使用 Label Selector 来选择一组相同 label 的对象(比如 ReplicaSet 和 Service 用 label 来选择一组 Pod。Label Selector 支持以下几种方式:
<ul><li>等式,如 <code>app=nginx</code><code>env!=production</code></li> <li>集合,如 <code>env in (production, qa)</code></li> <li>多个 label它们之间是 AND 关系),如 <code>app=nginx,env=test</code></li></ul></li> <li><code>Annotations</code> - Annotations 是 key/value 形式附加于对象的注解。不同于 Labels 用于标志和选择对象Annotations 则是用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。比如 deployment 使用 annotations 来记录 rolling update 的状态。</li></ul> <h2 id="二、k8s-命令"><a href="#二、k8s-命令" class="header-anchor">#</a> 二、K8S 命令</h2> <h3 id="客户端配置"><a href="#客户端配置" class="header-anchor">#</a> 客户端配置</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Setup autocomplete in bash; bash-completion package should be installed first</span>
<span class="token builtin class-name">source</span> <span class="token operator">&lt;</span><span class="token punctuation">(</span>kubectl completion <span class="token function">bash</span><span class="token punctuation">)</span>
<span class="token comment"># View Kubernetes config</span>
kubectl config view
<span class="token comment"># View specific config items by json path</span>
kubectl config view -o <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.users[?(@.name == &quot;k8s&quot;)].user.password}'</span>
<span class="token comment"># Set credentials for foo.kuberntes.com</span>
kubectl config set-credentials kubeuser/foo.kubernetes.com --username<span class="token operator">=</span>kubeuser --password<span class="token operator">=</span>kubepassword
</code></pre></div><h3 id="查找资源"><a href="#查找资源" class="header-anchor">#</a> 查找资源</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># List all services in the namespace</span>
kubectl get services
<span class="token comment"># List all pods in all namespaces in wide format</span>
kubectl get pods -o wide --all-namespaces
<span class="token comment"># List all pods in json (or yaml) format</span>
kubectl get pods -o json
<span class="token comment"># Describe resource details (node, pod, svc)</span>
kubectl describe nodes my-node
<span class="token comment"># List services sorted by name</span>
kubectl get services --sort-by<span class="token operator">=</span>.metadata.name
<span class="token comment"># List pods sorted by restart count</span>
kubectl get pods --sort-by<span class="token operator">=</span><span class="token string">'.status.containerStatuses[0].restartCount'</span>
<span class="token comment"># Rolling update pods for frontend-v1</span>
kubectl rolling-update frontend-v1 -f frontend-v2.json
<span class="token comment"># Scale a replicaset named 'foo' to 3</span>
kubectl scale --replicas<span class="token operator">=</span><span class="token number">3</span> rs/foo
<span class="token comment"># Scale a resource specified in &quot;foo.yaml&quot; to 3</span>
kubectl scale --replicas<span class="token operator">=</span><span class="token number">3</span> -f foo.yaml
<span class="token comment"># Execute a command in every pod / replica</span>
<span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> <span class="token number">0</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token keyword">do</span> kubectl <span class="token builtin class-name">exec</span> foo-<span class="token variable">$i</span> -- <span class="token function">sh</span> -c <span class="token string">'echo <span class="token variable"><span class="token variable">$(</span><span class="token function">hostname</span><span class="token variable">)</span></span> &gt; /usr/share/nginx/html/index.html'</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
</code></pre></div><h3 id="资源管理"><a href="#资源管理" class="header-anchor">#</a> 资源管理</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Get documentation for pod or service</span>
kubectl explain pods,svc
<span class="token comment"># Create resource(s) like pods, services or daemonsets</span>
kubectl create -f ./my-manifest.yaml
<span class="token comment"># Apply a configuration to a resource</span>
kubectl apply -f ./my-manifest.yaml
<span class="token comment"># Start a single instance of Nginx</span>
kubectl run nginx --image<span class="token operator">=</span>nginx
<span class="token comment"># Create a secret with several keys</span>
<span class="token function">cat</span> <span class="token operator">&lt;&lt;</span><span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> kubectl create -f -</span>
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">echo</span> <span class="token string">&quot;s33msi4&quot;</span> <span class="token operator">|</span> base64<span class="token variable">)</span></span>
username: <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">echo</span> <span class="token string">&quot;jane&quot;</span><span class="token operator">|</span> base64<span class="token variable">)</span></span>
EOF</span>
<span class="token comment"># Delete a resource</span>
kubectl delete -f ./my-manifest.yaml
</code></pre></div><h3 id="监控和日志"><a href="#监控和日志" class="header-anchor">#</a> 监控和日志</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Deploy Heapster from Github repository</span>
kubectl create -f deploy/kube-config/standalone/
<span class="token comment"># Show metrics for nodes</span>
kubectl <span class="token function">top</span> node
<span class="token comment"># Show metrics for pods</span>
kubectl <span class="token function">top</span> pod
<span class="token comment"># Show metrics for a given pod and its containers</span>
kubectl <span class="token function">top</span> pod pod_name --containers
<span class="token comment"># Dump pod logs (stdout)</span>
kubectl logs pod_name
<span class="token comment"># Stream pod container logs (stdout, multi-container case)</span>
kubectl logs -f pod_name -c my-container
</code></pre></div><h2 id="参考资料"><a href="#参考资料" class="header-anchor">#</a> 参考资料</h2> <ul><li><strong>官方</strong> <ul><li><a href="https://github.com/kubernetes/kubernetes" target="_blank" rel="noopener noreferrer">Kubernetes Github<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li> <li><a href="https://kubernetes.io/" target="_blank" rel="noopener noreferrer">Kubernetes 官网<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li> <li><strong>教程</strong> <ul><li><a href="https://jimmysong.io/kubernetes-handbook/" target="_blank" rel="noopener noreferrer">Kubernetes 中文指南<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li> <li><a href="https://github.com/rootsongjc/kubernetes-handbook" target="_blank" rel="noopener noreferrer">kubernetes-handbook<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li> <li><strong>文章</strong> <ul><li>https://github.com/LeCoupa/awesome-cheatsheets/blob/master/tools/kubernetes.sh</li></ul></li> <li><strong>更多资源</strong> <ul><li><a href="https://github.com/ramitsurana/awesome-kubernetes" target="_blank" rel="noopener noreferrer">awesome-kubernetes<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li></ul></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/dunwu/linux-tutorial/edit/master/docs/docker/kubernetes.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">19 minutes ago</span></div></footer> <!----> </main></div><div class="global-ui"><!----><!----></div></div>
<script src="/linux-tutorial/assets/js/app.79a38eea.js" defer></script><script src="/linux-tutorial/assets/js/4.fb6e0f89.js" defer></script><script src="/linux-tutorial/assets/js/16.ad565eae.js" defer></script><script src="/linux-tutorial/assets/js/5.cb43ecfb.js" defer></script>
</body>
</html>