-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
154 lines (74 loc) · 47.4 KB
/
search.xml
File metadata and controls
154 lines (74 loc) · 47.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>Kubernetes基础知识</title>
<link href="/2022/11/24/Kubernetes%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/"/>
<url>/2022/11/24/Kubernetes%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/</url>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\css\APlayer.min.css"><script src="\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\js\Meting.min.js"></script><h1 id="1-Kubernetes简介"><a href="#1-Kubernetes简介" class="headerlink" title="1 Kubernetes简介"></a>1 Kubernetes简介</h1><h2 id="1-1-what-amp-amp-where-amp-amp-why"><a href="#1-1-what-amp-amp-where-amp-amp-why" class="headerlink" title="1.1 what && where && why?"></a>1.1 what && where && why?</h2><h3 id="1-1-1-what"><a href="#1-1-1-what" class="headerlink" title="1.1.1 what?"></a>1.1.1 what?</h3><p>首先我们来回答第一个问题,什么是Kubernets?</p><p>答曰:它是一个为 <strong>容器化</strong> 应用提供集群部署和管理的开源工具,由 Google 开发。<br><strong>Kubernetes</strong> 这个名字源于希腊语,意为“舵手”或“飞行员”,处于方便我们一般称它为<code>k8s</code>。<code>k8s</code> 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。</p><h3 id="1-1-2-where"><a href="#1-1-2-where" class="headerlink" title="1.1.2 where?"></a>1.1.2 where?</h3><p>第二个问题,什么情况下我们需要用到<code>k8s</code>?</p><p>答曰:当你的应用需要跑在很多机器上,每次增加机器、软件更新、版本回滚都会变得非常麻烦。这时候就需要<code>k8s</code>来管理这种百万千万台机器集群而不是每台机器单独手动配置。Kubernetes 可以为你提供集中式的管理集群机器和应用,加机器、版本升级、版本回滚,那都是一个命令就搞定的事,不停机的灰度更新,确保高可用、高性能、高扩展。</p><h3 id="1-1-3-why"><a href="#1-1-3-why" class="headerlink" title="1.1.3 why?"></a>1.1.3 why?</h3><p>最后灵魂疑问,为什么选择<code>k8s</code>呢?</p><p>在超大集群的背景下,<code>k8s</code>具有以下非常动人的特性:</p><ul><li>高可用,不宕机,自动灾难恢复</li><li>灰度更新,不影响业务正常运转</li><li>一键回滚到历史版本</li><li>方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡</li><li>有一个完善的生态</li></ul><h2 id="1-2-k8s重要概念"><a href="#1-2-k8s重要概念" class="headerlink" title="1.2 k8s重要概念"></a>1.2 k8s重要概念</h2><h3 id="1-2-1-k8s集群架构"><a href="#1-2-1-k8s集群架构" class="headerlink" title="1.2.1 k8s集群架构"></a>1.2.1 k8s集群架构</h3><p><img src="https://sjwx.easydoc.xyz/46901064/files/kwob90mh.png" alt="k8s集群架构"></p><p>k8s由主节点(master)和工作结点(worker)组成.</p><p><strong>master node:</strong></p><p>主节点,控制平台,不需要很高性能,不跑任务,通常一个就行了,也可以开多个主节点来提高集群可用度</p><p><strong>worker node:</strong></p><p>工作节点,可以是虚拟机或物理计算机,任务都在这里跑,机器性能需要好点;通常都有很多个,可以不断加机器扩大集群;每个工作节点由主节点管理</p><p><strong>基础包含关系:</strong></p><p>首先我们先来学习一下几个概念:</p><p><em>Node</em>:Node是Pod真正运行的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如docker或者rkt)、kubelet和kube-proxy服务。</p><p><em>Pod</em>:在<code>k8s</code>中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的,管理,创建,计划的最小单元.一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。</p><p>Pod 的context可以理解成多个linux命名空间的联合:</p><ul><li>PID 命名空间(同一个Pod中应用可以看到其它进程)</li><li>网络 命名空间(同一个Pod的中的应用对相同的IP地址和端口有权限)</li><li>IPC 命名空间(同一个Pod中的应用可以通过VPC或者POSIX进行通信)</li><li>UTS 命名空间(同一个Pod中的应用共享一个主机名称)</li></ul><p><em>Node和Pod的关系</em>:每个Node都包括以下状态信息</p><ul><li><p>地址:包括hostname、外网IP和内网IP</p></li><li><p>条件(Condition):包括OutOfDisk、Ready、MemoryPressure和DiskPressure</p></li><li><p>容量(Capacity):Node上的可用资源,包括CPU、内存和Pod总数</p></li><li><p>基本信息(Info):包括内核版本、容器引擎版本、OS类型等</p><p>如果node 被删除,所拥有的Pod会自动分流到其他的Node,但是存在特殊的无法被分流的Pod</p></li></ul><p><img src="https://sjwx.easydoc.xyz/46901064/files/kwoccq7d" alt="Pod和Node和容器关系"></p><h3 id="1-2-2-k8s组件"><a href="#1-2-2-k8s组件" class="headerlink" title="1.2.2 k8s组件"></a>1.2.2 k8s组件</h3><p><code>kube-apiserver</code> API 服务器,公开了 Kubernetes API<br><code>etcd</code> 键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库<br><code>kube-scheduler</code> 调度 Pod 到哪个节点运行<br><code>kube-controller</code> 集群控制器<br><code>cloud-controller</code> 与云服务商交互</p><p><img src="https://sjwx.easydoc.xyz/46901064/files/kwonmx7e.png" alt="k8s组件"></p><h1 id="基于Azure的K8s创建与连接"><a href="#基于Azure的K8s创建与连接" class="headerlink" title="基于Azure的K8s创建与连接"></a>基于Azure的K8s创建与连接</h1><blockquote><p>在进行下面操作之前首先你得注册Azure并获取订阅(可能需要抽点血,慎重哈🤣)</p></blockquote><h2 id="2-1-命令行操作"><a href="#2-1-命令行操作" class="headerlink" title="2.1 命令行操作"></a>2.1 命令行操作</h2><p>首先进入官网,打开命令行bash,输入下面的两行命令</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">location=eastus <span class="comment">#声明地点是us东部</span></span><br><span class="line">az group create --name K8s_test1 --location <span class="variable">$location</span> <span class="comment"># 创建一个名为K8s_test的资源组,地点为第一行输入的额参数</span></span><br></pre></td></tr></table></figure><p>创建完成后会输出资源组配置信息如下:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> "id": "/subscriptions/237369a6-9556-4d27-85cc-bf13e95e8244/resourceGroups/K8s_test1",</span><br><span class="line"> "location": "eastus",</span><br><span class="line"> "managedBy": null,</span><br><span class="line"> "name": "K8s_test1",</span><br><span class="line"> "properties": {</span><br><span class="line"> "provisioningState": "Succeeded"</span><br><span class="line"> },</span><br><span class="line"> "tags": null,</span><br><span class="line"> "type": "Microsoft.Resources/resourceGroups"</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>在接着我们需要在这个新建的资源组<code>K8s_test1</code>下创建<code>k8s</code>的一个集群,所以需要输入以下命令:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">az aks create --resource-group K8s_test1 --name K8sCluster1 --node-count 1 --generate-ssh-keys --node-vm-size=Standard_B2s --disable-rbac</span><br></pre></td></tr></table></figure><p>其中<code>--resource-group</code>后面的参数就是你想将集群放置的资源组的名称,也就是第一步创建的资源组名称,我这里是<code>K8s_test1</code>,而<code>--name</code>后的参数则是你想创建的这个集群的名字,这里我叫<code>K8sCluster1</code>,<code>--node-count</code>顾名思义就是集群中worker node的个数(至于master node是托管给Azure管的),<code>--node-vm-size</code>是worker node的参数,这里我们选择了最便宜的主机</p><p>创建过程看你配置,如果你很老实按上面的操作,这边的话应该5-7min就可以。</p><p>不出意外的话,控制台会输出你的ssh-keys生成地址目录和集群的相应信息大致如下:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br></pre></td><td class="code"><pre><span class="line">SSH key files <span class="string">'/home/[用户名]/.ssh/id_rsa'</span> and <span class="string">'/home/[用户名]/.ssh/id_rsa.pub'</span> have been generated under ~/.ssh to allow SSH access to the VM. If using machines without permanent storage like Azure Cloud Shell without an attached file share, back up your keys to a safe location</span><br><span class="line">{</span><br><span class="line"> <span class="string">"aadProfile"</span>: null,</span><br><span class="line"> <span class="string">"addonProfiles"</span>: null,</span><br><span class="line"> <span class="string">"agentPoolProfiles"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"availabilityZones"</span>: null,</span><br><span class="line"> <span class="string">"count"</span>: 1,</span><br><span class="line"> <span class="string">"creationData"</span>: null,</span><br><span class="line"> <span class="string">"currentOrchestratorVersion"</span>: <span class="string">"1.23.12"</span>,</span><br><span class="line"> <span class="string">"enableAutoScaling"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"enableEncryptionAtHost"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"enableFips"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"enableNodePublicIp"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"enableUltraSsd"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"gpuInstanceProfile"</span>: null,</span><br><span class="line"> <span class="string">"hostGroupId"</span>: null,</span><br><span class="line"> <span class="string">"kubeletConfig"</span>: null,</span><br><span class="line"> <span class="string">"kubeletDiskType"</span>: <span class="string">"OS"</span>,</span><br><span class="line"> <span class="string">"linuxOsConfig"</span>: null,</span><br><span class="line"> <span class="string">"maxCount"</span>: null,</span><br><span class="line"> <span class="string">"maxPods"</span>: 110,</span><br><span class="line"> <span class="string">"minCount"</span>: null,</span><br><span class="line"> <span class="string">"mode"</span>: <span class="string">"System"</span>,</span><br><span class="line"> <span class="string">"name"</span>: <span class="string">"nodepool1"</span>,</span><br><span class="line"> <span class="string">"nodeImageVersion"</span>: <span class="string">"AKSUbuntu-1804gen2containerd-2022.11.02"</span>,</span><br><span class="line"> <span class="string">"nodeLabels"</span>: null,</span><br><span class="line"> <span class="string">"nodePublicIpPrefixId"</span>: null,</span><br><span class="line"> <span class="string">"nodeTaints"</span>: null,</span><br><span class="line"> <span class="string">"orchestratorVersion"</span>: <span class="string">"1.23.12"</span>,</span><br><span class="line"> <span class="string">"osDiskSizeGb"</span>: 128,</span><br><span class="line"> <span class="string">"osDiskType"</span>: <span class="string">"Managed"</span>,</span><br><span class="line"> <span class="string">"osSku"</span>: <span class="string">"Ubuntu"</span>,</span><br><span class="line"> <span class="string">"osType"</span>: <span class="string">"Linux"</span>,</span><br><span class="line"> <span class="string">"podSubnetId"</span>: null,</span><br><span class="line"> <span class="string">"powerState"</span>: {</span><br><span class="line"> <span class="string">"code"</span>: <span class="string">"Running"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"provisioningState"</span>: <span class="string">"Succeeded"</span>,</span><br><span class="line"> <span class="string">"proximityPlacementGroupId"</span>: null,</span><br><span class="line"> <span class="string">"scaleDownMode"</span>: null,</span><br><span class="line"> <span class="string">"scaleSetEvictionPolicy"</span>: null,</span><br><span class="line"> <span class="string">"scaleSetPriority"</span>: null,</span><br><span class="line"> <span class="string">"spotMaxPrice"</span>: null,</span><br><span class="line"> <span class="string">"tags"</span>: null,</span><br><span class="line"> <span class="string">"type"</span>: <span class="string">"VirtualMachineScaleSets"</span>,</span><br><span class="line"> <span class="string">"upgradeSettings"</span>: {</span><br><span class="line"> <span class="string">"maxSurge"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"vmSize"</span>: <span class="string">"Standard_B2s"</span>,</span><br><span class="line"> <span class="string">"vnetSubnetId"</span>: null,</span><br><span class="line"> <span class="string">"workloadRuntime"</span>: null</span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"apiServerAccessProfile"</span>: null,</span><br><span class="line"> <span class="string">"autoScalerProfile"</span>: null,</span><br><span class="line"> <span class="string">"autoUpgradeProfile"</span>: null,</span><br><span class="line"> <span class="string">"azurePortalFqdn"</span>: <span class="string">"k8scluster-k8stest1-237369-2a186e18.portal.hcp.eastus.azmk8s.io"</span>,</span><br><span class="line"> <span class="string">"currentKubernetesVersion"</span>: <span class="string">"1.23.12"</span>,</span><br><span class="line"> <span class="string">"disableLocalAccounts"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"diskEncryptionSetId"</span>: null,</span><br><span class="line"> <span class="string">"dnsPrefix"</span>: <span class="string">"K8sCluster-K8stest1-237369"</span>,</span><br><span class="line"> <span class="string">"enablePodSecurityPolicy"</span>: null,</span><br><span class="line"> <span class="string">"enableRbac"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"extendedLocation"</span>: null,</span><br><span class="line"> <span class="string">"fqdn"</span>: <span class="string">"k8scluster-k8stest1-237369-2a186e18.hcp.eastus.azmk8s.io"</span>,</span><br><span class="line"> <span class="string">"fqdnSubdomain"</span>: null,</span><br><span class="line"> <span class="string">"httpProxyConfig"</span>: null,</span><br><span class="line"> <span class="string">"id"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"identity"</span>: {</span><br><span class="line"> <span class="string">"principalId"</span>: <span class="string">"56867ce4-6c0d-4952-8c3e-538a58895b32"</span>,</span><br><span class="line"> <span class="string">"tenantId"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"type"</span>: <span class="string">"SystemAssigned"</span>,</span><br><span class="line"> <span class="string">"userAssignedIdentities"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"identityProfile"</span>: {</span><br><span class="line"> <span class="string">"kubeletidentity"</span>: {</span><br><span class="line"> <span class="string">"clientId"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"objectId"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"resourceId"</span>: <span class="string">""</span></span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"kubernetesVersion"</span>: <span class="string">"1.23.12"</span>,</span><br><span class="line"> <span class="string">"linuxProfile"</span>: {</span><br><span class="line"> <span class="string">"adminUsername"</span>: <span class="string">"azureuser"</span>,</span><br><span class="line"> <span class="string">"ssh"</span>: {</span><br><span class="line"> <span class="string">"publicKeys"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"keyData"</span>: <span class="string">""</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"location"</span>: <span class="string">"eastus"</span>,</span><br><span class="line"> <span class="string">"maxAgentPools"</span>: 100,</span><br><span class="line"> <span class="string">"name"</span>: <span class="string">"K8sCluster1"</span>,</span><br><span class="line"> <span class="string">"networkProfile"</span>: {</span><br><span class="line"> <span class="string">"dnsServiceIp"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"dockerBridgeCidr"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"ipFamilies"</span>: [</span><br><span class="line"> <span class="string">"IPv4"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"loadBalancerProfile"</span>: {</span><br><span class="line"> <span class="string">"allocatedOutboundPorts"</span>: null,</span><br><span class="line"> <span class="string">"effectiveOutboundIPs"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"id"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="string">"resourceGroup"</span>: <span class="string">""</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"enableMultipleStandardLoadBalancers"</span>: null,</span><br><span class="line"> <span class="string">"idleTimeoutInMinutes"</span>: null,</span><br><span class="line"> <span class="string">"managedOutboundIPs"</span>: {</span><br><span class="line"> <span class="string">"count"</span>: 1,</span><br><span class="line"> <span class="string">"countIpv6"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"outboundIPs"</span>: null,</span><br><span class="line"> <span class="string">"outboundIpPrefixes"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"loadBalancerSku"</span>: <span class="string">"Standard"</span>,</span><br><span class="line"> <span class="string">"natGatewayProfile"</span>: null,</span><br><span class="line"> <span class="string">"networkMode"</span>: null,</span><br><span class="line"> <span class="string">"networkPlugin"</span>: <span class="string">"kubenet"</span>,</span><br><span class="line"> <span class="string">"networkPolicy"</span>: null,</span><br><span class="line"> <span class="string">"outboundType"</span>: <span class="string">"loadBalancer"</span>,</span><br><span class="line"> <span class="string">"podCidr"</span>: <span class="string">"10.244.0.0/16"</span>,</span><br><span class="line"> <span class="string">"podCidrs"</span>: [</span><br><span class="line"> <span class="string">"10.244.0.0/16"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"serviceCidr"</span>: <span class="string">"10.0.0.0/16"</span>,</span><br><span class="line"> <span class="string">"serviceCidrs"</span>: [</span><br><span class="line"> <span class="string">"10.0.0.0/16"</span></span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"nodeResourceGroup"</span>: <span class="string">"MC_K8s_test1_K8sCluster1_eastus"</span>,</span><br><span class="line"> <span class="string">"oidcIssuerProfile"</span>: {</span><br><span class="line"> <span class="string">"enabled"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="string">"issuerUrl"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"podIdentityProfile"</span>: null,</span><br><span class="line"> <span class="string">"powerState"</span>: {</span><br><span class="line"> <span class="string">"code"</span>: <span class="string">"Running"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"privateFqdn"</span>: null,</span><br><span class="line"> <span class="string">"privateLinkResources"</span>: null,</span><br><span class="line"> <span class="string">"provisioningState"</span>: <span class="string">"Succeeded"</span>,</span><br><span class="line"> <span class="string">"publicNetworkAccess"</span>: null,</span><br><span class="line"> <span class="string">"resourceGroup"</span>: <span class="string">"K8s_test1"</span>,</span><br><span class="line"> <span class="string">"securityProfile"</span>: {</span><br><span class="line"> <span class="string">"azureKeyVaultKms"</span>: null,</span><br><span class="line"> <span class="string">"defender"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"servicePrincipalProfile"</span>: {</span><br><span class="line"> <span class="string">"clientId"</span>: <span class="string">"msi"</span>,</span><br><span class="line"> <span class="string">"secret"</span>: null</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"sku"</span>: {</span><br><span class="line"> <span class="string">"name"</span>: <span class="string">"Basic"</span>,</span><br><span class="line"> <span class="string">"tier"</span>: <span class="string">"Free"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"storageProfile"</span>: {</span><br><span class="line"> <span class="string">"blobCsiDriver"</span>: null,</span><br><span class="line"> <span class="string">"diskCsiDriver"</span>: {</span><br><span class="line"> <span class="string">"enabled"</span>: <span class="literal">true</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"fileCsiDriver"</span>: {</span><br><span class="line"> <span class="string">"enabled"</span>: <span class="literal">true</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"snapshotController"</span>: {</span><br><span class="line"> <span class="string">"enabled"</span>: <span class="literal">true</span></span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"systemData"</span>: null,</span><br><span class="line"> <span class="string">"tags"</span>: null,</span><br><span class="line"> <span class="string">"type"</span>: <span class="string">"Microsoft.ContainerService/ManagedClusters"</span>,</span><br><span class="line"> <span class="string">"windowsProfile"</span>: null</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>下一步我们需要连接我们刚刚用命令行创建的K8s的这个集群,需要在命令行输入:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">az aks get-credentials --resource-group=K8s_test1 --name=K8sCluster1</span><br></pre></td></tr></table></figure><p>接着输入</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kubectl get nodes</span><br></pre></td></tr></table></figure><p>就可以看到自己部署的worker nodes的信息</p><h2 id="2-2-UI界面操作"><a href="#2-2-UI界面操作" class="headerlink" title="2.2 UI界面操作"></a>2.2 UI界面操作</h2><p>等待更新</p><h1 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h1><p>1、视频资源:</p><ul><li>喜得Sid【<a href="https://www.bilibili.com/video/BV1aW4y147LS/?spm_id_from=333.999.0.0&vd_source=ee53dd1030bfd3379cea634581389614">K8s简介</a>】</li></ul><p>2、文档资料</p><ul><li>E文档【<a href="https://k8s.easydoc.net/docs/dRiQjyTY/28366845/6GiNOzyZ/9EX8Cp45">K8S简介</a>】</li><li>CSDN【<a href="https://blog.csdn.net/m0_61209018/article/details/120718658">K8s简介</a>】</li></ul>]]></content>
<categories>
<category> 集群应用 </category>
<category> kubernetes </category>
</categories>
<tags>
<tag> k8s </tag>
<tag> DNS </tag>
<tag> Azure </tag>
<tag> Docker </tag>
</tags>
</entry>
<entry>
<title>gitpod Self-Hosted安装前的先导知识</title>
<link href="/2022/11/24/gitpod-Self-Hosted%E5%AE%89%E8%A3%85%E5%89%8D%E7%9A%84%E5%85%88%E5%AF%BC%E7%9F%A5%E8%AF%86/"/>
<url>/2022/11/24/gitpod-Self-Hosted%E5%AE%89%E8%A3%85%E5%89%8D%E7%9A%84%E5%85%88%E5%AF%BC%E7%9F%A5%E8%AF%86/</url>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\css\APlayer.min.css"><script src="\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\js\Meting.min.js"></script><blockquote><p>Note:Gitpod不是一个类似于web shop app的简单的Kubernetes应用。它更像是一个基础设施工具,类似于一个构建系统,它大量利用 Kubernetes 内部来构建和部署映像、控制 Kubernetes 容器(工作区)等。这就是为什么它在 Kubernetes 中需要比简单的 Web 应用程序更多的权限。</p></blockquote><h2 id="1-Kubernetes-专业知识"><a href="#1-Kubernetes-专业知识" class="headerlink" title="1. Kubernetes 专业知识"></a>1. Kubernetes 专业知识</h2><ul><li><p>一些k8s基础知识【<a href="https://kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/">官网doc</a>】</p></li><li><p>3小时快速上手+实战视频,这个量力而行,很多需要本地内存支持或者云端氪金【<a href="https://www.bilibili.com/video/BV1Tg411P7EB/?p=7&spm_id_from=pageDriver&vd_source=ee53dd1030bfd3379cea634581389614">视频地址</a>】</p></li></ul><h2 id="2-兼容的-Kubernetes-集群"><a href="#2-兼容的-Kubernetes-集群" class="headerlink" title="2. 兼容的 Kubernetes 集群"></a>2. 兼容的 Kubernetes 集群</h2><blockquote><p>Gitpod 是一个 Kubernetes 应用程序,它大量使用各种 Kubernetes 功能。强烈建议有足够的 Kubernetes 经验才能安装 Gitpod。这些文档希望您能够自行创建和维护符合我们<a href="https://www.gitpod.io/docs/configure/self-hosted/latest/requirements">要求</a>的 Kubernetes 集群。</p></blockquote><h3 id="2-1-集群要求"><a href="#2-1-集群要求" class="headerlink" title="2.1 集群要求"></a>2.1 集群要求</h3><p><img src="https://www.gitpod.io/images/docs/self-hosted/cluster-requirements.png"></p><p><strong>Kubernetes 集群必须具有应用了以下标签的节点</strong>:</p><ul><li><code>gitpod.io/workload_meta=true</code></li><li><code>gitpod.io/workload_ide=true</code></li><li><code>gitpod.io/workload_workspace_services=true</code></li><li><code>gitpod.io/workload_workspace_regular=true</code></li><li><code>gitpod.io/workload_workspace_headless=true</code></li></ul><p><strong>以下是每个节点上预期的组件</strong>:</p><ul><li>Ubuntu Linux</li><li>Calico for the networking overlay and network policy</li><li>Containerd</li><li>At least 4 vCPU and 16GB of RAM</li></ul><p><strong>Kubernetes 特权要求</strong>:</p><p>Kubernetes集群必须允许gitpod使用特权pods,因为gitpod以来这些权限提供workspace的独立性</p><p><strong>负载均衡器要求</strong>:</p><p>Gitpod 使用负载均衡器类型的服务来公开桌面 IDE 使用的 Gitpod 仪表板、基于浏览器的 IDE 和 SSH 连接。 Kubernetes 集群必须能够为负载均衡器类型的服务预置第 4 层或第 7 层负载均衡器,这些服务可以将 HTTP(S) 连接路由到 Gitpod 服务。如果您打算使用桌面 IDE 或 SSH 连接到工作区,则集群还必须能够预置可将 SSH 连接路由到 Gitpod 服务的第 4 层负载均衡器。</p><p>本次任务主要是基于Azure的Kubernetes:<a href="https://learn.microsoft.com/en-us/azure/aks/concepts-network">参考链接</a></p><p><strong>Bucket Storage</strong><br> 默认情况下,MinIO 安装在群集中以存储静态内容并备份群集内映像注册表。在安装过程中,您还可以将 Gitpod 配置为使用 S3 等外部存储提供程序。</p><p><strong>Database</strong></p><p>Gitpod使用MySQL来存储用户数据。默认情况下,Gitpod 内置了一个 MySQL 数据库,数据使用 Kubernetes PersistentVolume 存储。对于生产设置,建议运行自己的 MySQL 数据库(版本 v5.7 或更高版本)。可以在安装过程中配置使用哪个数据库。</p><p><strong>镜像仓库</strong><br> Gitpod 依靠映像注册表来存储用于启动工作区的映像。默认情况下,群集中会安装由 MiniIO 支持的基于 docker 的映像注册表(可以在安装过程中进行配置)。但是,Gitpod 也与任何实现 Docker Registry HTTP API V2 规范的注册表兼容。</p><p><strong>源头控制管理系统</strong><br> Gitpod希望连接到源代码控制管理系统(SCM),如GitLab才能运行。您可以在“<a href="https://www.gitpod.io/docs/configure/authentication">集成</a>”部分找到有关支持哪些 SCM 以及如何连接到它们的更多信息。首次访问 Gitpod 安装后,还将指导您连接 SCM。</p><h2 id="3-Cert-Manager"><a href="#3-Cert-Manager" class="headerlink" title="3. Cert-Manager"></a>3. Cert-Manager</h2><p>必须先在集群中安装证书管理器,然后才能安装 Gitpod。它用于创建和管理保护各种内部 Gitpod 组件之间通信所需的证书。例如,它还可用于从Let’s Encrypt获取Gitpod实例的TLS证书。有关如何安装它的证书管理器文档,请考虑<a href="https://cert-manager.io/docs/">cert-manager - cert-manager Documentation</a>。</p><h2 id="4-DNS设置"><a href="#4-DNS设置" class="headerlink" title="4. DNS设置"></a>4. DNS设置</h2><p>对于 Gitpod 安装,您需要一个正确配置的域。域本身和通配符子域 <code>*.example.com</code>、<code>*.ws.example.com</code>(将 example.com 替换为 Gitpod 域)需要指向集群入口。</p><h2 id="5-Gitpod-product-license"><a href="#5-Gitpod-product-license" class="headerlink" title="5. Gitpod product license"></a>5. Gitpod product license</h2><p>安装Gitpod需要一个license,license获取地址:<a href="https://www.gitpod.io/community-license">Community License (gitpod.io)</a></p>]]></content>
<categories>
<category> 集群应用 </category>
<category> gitpod部署 </category>
</categories>
<tags>
<tag> gitpod </tag>
<tag> k8s </tag>
<tag> DNS </tag>
<tag> Azure </tag>
<tag> Docker </tag>
</tags>
</entry>
<entry>
<title>软件测试_大组组会1</title>
<link href="/2022/11/22/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95-%E5%A4%A7%E7%BB%84%E7%BB%84%E4%BC%9A1/"/>
<url>/2022/11/22/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95-%E5%A4%A7%E7%BB%84%E7%BB%84%E4%BC%9A1/</url>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\css\APlayer.min.css"><script src="\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\js\Meting.min.js"></script><h2 id="1、Testing-Your-Question-Answering-Software-via-Asking-Recursively"><a href="#1、Testing-Your-Question-Answering-Software-via-Asking-Recursively" class="headerlink" title="1、Testing Your Question Answering Software via Asking Recursively"></a>1、Testing Your Question Answering Software via Asking Recursively</h2><blockquote><p>检测QA模型是否准确:回答的一致性</p></blockquote><h3 id="名词"><a href="#名词" class="headerlink" title="名词"></a>名词</h3><p>蜕变实验:蜕变测试中指出,给出一个或多个测试用例(称为“源测试用例”或“原始测试用例”)及其预期输出(如果有的话),一个或多个用来验证系统或待实现函数的<a href="https://baike.baidu.com/item/%E5%BF%85%E8%A6%81?fromModule=lemma_inlink">必要</a>属性(称为蜕变关系)的后续测试用例可以被构造出来。例如,一个程序正确实现了sin x的100位<a href="https://baike.baidu.com/item/%E6%9C%89%E6%95%88%E6%95%B0%E5%AD%97?fromModule=lemma_inlink">有效数字</a>。正弦函数的一个蜕变关系是“sin (π − x) = sin x”,因此即使对于源测试用例<em>x</em>= 1.234 来说,sin<em>x</em>的预期输出并不知道,但依然可以以此构造一个后续测试用例<em>y</em>=<em>π</em>− 1.234。然后判断源测试用例和后续测试用例产生的输出是否在蜕变关系下一致。任何不一致的输出表示了程序的实现中存在缺陷。</p><p>在一般情况下,蜕变关系并不需要一定是一个等式或方程,也可以是一个<a href="https://baike.baidu.com/item/%E5%85%B3%E7%B3%BB?fromModule=lemma_inlink">关系</a>。 蜕变试验可以应用于包含了目标函数<strong>多次</strong>执行过程的,其必要属性可以被定制的任何问题中。一些成功应用蜕变测试的例子包括:偏微分方程、<a href="https://baike.baidu.com/item/%E6%99%AE%E9%80%82%E8%AE%A1%E7%AE%97?fromModule=lemma_inlink">普适计算</a>、<a href="https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E8%AE%A1%E7%AE%97?fromModule=lemma_inlink">服务计算</a>、<a href="https://baike.baidu.com/item/%E7%BB%98%E5%9B%BE%E8%BD%AF%E4%BB%B6?fromModule=lemma_inlink">绘图软件</a>、生物信息学、<a href="https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E4%BA%A7%E5%93%81%E7%BA%BF?fromModule=lemma_inlink">软件产品线</a>以及<a href="https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E?fromModule=lemma_inlink">网络搜索引擎</a>等。</p><p>蜕变测试也被应用于机器学习、人工智能算法、以及基于神经网络的深度学习模型中,并被认为是用来验证机器学习软件的一种很有前景的方法。 </p><h2 id="2、Synthesizing-Analytical-SQL-Queries-from-Computation-Demonstration"><a href="#2、Synthesizing-Analytical-SQL-Queries-from-Computation-Demonstration" class="headerlink" title="2、Synthesizing Analytical SQL Queries from Computation Demonstration"></a>2、Synthesizing Analytical SQL Queries from Computation Demonstration</h2><blockquote><p>程序合成:用户给出要求(输入输出);工具自动搜索(填充框架)满足用户目标</p></blockquote><p>介绍了分析师SQL查询的合成问题,提出一种新的规约:计算演示</p>]]></content>
<categories>
<category> 论文分享 </category>
</categories>
<tags>
<tag> 编译器优化 </tag>
<tag> QA测试 </tag>
</tags>
</entry>
<entry>
<title>PDF展示测试</title>
<link href="/2022/11/20/%E7%A3%95%E7%9B%90%E6%97%A5%E5%B8%B8-DCE-1/"/>
<url>/2022/11/20/%E7%A3%95%E7%9B%90%E6%97%A5%E5%B8%B8-DCE-1/</url>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\css\APlayer.min.css"><script src="\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\js\Meting.min.js"></script><p>本次实验主要是测试PDF在网页是否正常显示:<br>.md中插入代码为:</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">object</span> <span class="attr">data</span>=<span class="string">"1.pdf"</span> <span class="attr">type</span>=<span class="string">"application/pdf"</span> <span class="attr">width</span>=<span class="string">"100%"</span> <span class="attr">height</span>=<span class="string">"877px"</span>></span></span><br><span class="line"><span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"1.pdf"</span>></span>下载PDF<span class="tag"></<span class="name">a</span>></span></span><br></pre></td></tr></table></figure><object data="1.pdf" type="application/pdf" width="100%" height="877px"><a href="1.pdf">下载PDF</a>]]></content>
<categories>
<category> 磕盐实验 </category>
</categories>
<tags>
<tag> DCE </tag>
<tag> 编译器优化 </tag>
</tags>
</entry>
<entry>
<title>关于网站</title>
<link href="/2022/11/08/%E5%85%B3%E4%BA%8E%E7%BD%91%E7%AB%99/"/>
<url>/2022/11/08/%E5%85%B3%E4%BA%8E%E7%BD%91%E7%AB%99/</url>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\css\APlayer.min.css"><script src="\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src="\js\Meting.min.js"></script><h1 id="1-本地环境配置"><a href="#1-本地环境配置" class="headerlink" title="1. 本地环境配置"></a>1. 本地环境配置</h1><h1 id="2-主题选择"><a href="#2-主题选择" class="headerlink" title="2. 主题选择"></a>2. 主题选择</h1><h1 id="3-butterfly主题配置"><a href="#3-butterfly主题配置" class="headerlink" title="3. butterfly主题配置"></a>3. butterfly主题配置</h1>]]></content>
<categories>
<category> web </category>
</categories>
<tags>
<tag> hexo网站部署 </tag>
</tags>
</entry>
</search>