<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Kubernetes - 标签 - Gene.Tech</title>
        <link>https://geneliu.itaghome.win/zh-cn/tags/kubernetes/</link>
        <description>Kubernetes - 标签 - Gene.Tech</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>gene.liu@live.com (Gene Liu)</managingEditor>
            <webMaster>gene.liu@live.com (Gene Liu)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sun, 08 May 2022 00:00:00 &#43;0000</lastBuildDate><atom:link href="https://geneliu.itaghome.win/zh-cn/tags/kubernetes/" rel="self" type="application/rss+xml" /><item>
    <title>Kubernetes 集群安装</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-05-08-k8s-cka/</link>
    <pubDate>Sun, 08 May 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-05-08-k8s-cka/</guid>
    <description><![CDATA[<p>要了解有关 <code>kubeadm</code> 工具箱的一些详细信息，最好的方法是使用它来管理 k8s 集群。这包括整个生命周期管理：新安装 (HA)、扩容/缩容和升级。所有信息截至 2022 年 5 月均为最新。</p>]]></description>
</item>
<item>
    <title>Kubernetes (k3s) 证书过期</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-04-19-k3s-certs-expire/</link>
    <pubDate>Tue, 19 Apr 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-04-19-k3s-certs-expire/</guid>
    <description><![CDATA[<p>一些旧的 k3s 版本存在一个错误，导致证书自动续期失败。</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl --insecure-skip-tls-verify<span class="o">=</span><span class="nb">true</span> delete secret -n kube-system k3s-serving
</span></span><span class="line"><span class="cl">stop k3s
</span></span><span class="line"><span class="cl">remove/backup /var/lib/rancher/k3s/server/tls/dynamic-cert.json
</span></span><span class="line"><span class="cl">remove/backup /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">restart k3s</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Nextcloud 升级后添加缺失的索引</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-03-26-nextcloud/</link>
    <pubDate>Sat, 26 Mar 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-03-26-nextcloud/</guid>
    <description><![CDATA[<h3 id="升级-nextcloud">升级 Nextcloud</h3>
<ol>
<li>删除除 <code>/config</code> 和 <code>/data</code> 之外的所有其他文件夹（因为一次不成功的跨大版本升级）。</li>
<li>逐个升级大版本（不能跨两个大版本升级）。</li>
</ol>
<h3 id="关于缺失索引的系统警告">关于缺失索引的系统警告</h3>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl <span class="nb">exec</span> -it -n nextcloud nextcloud-6864c47cf4-58vrl -- /bin/sh
</span></span><span class="line"><span class="cl"><span class="c1"># sudo -u www-data php occ db:add-missing-indices</span>
</span></span><span class="line"><span class="cl">/bin/sh: 1: sudo: not found
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data</span>
</span></span><span class="line"><span class="cl">This account is currently not available.
</span></span><span class="line"><span class="cl"><span class="c1"># id</span>
</span></span><span class="line"><span class="cl"><span class="nv">uid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">gid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">groups</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span>,33<span class="o">(</span>www-data<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data -s /bin/sh</span>
</span></span><span class="line"><span class="cl">$ php occ db:add-missing-indices
</span></span><span class="line"><span class="cl">Check indices of the share table.
</span></span><span class="line"><span class="cl">Check indices of the filecache table.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional path index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the twofactor_providers table.
</span></span><span class="line"><span class="cl">Check indices of the login_flow_v2 table.
</span></span><span class="line"><span class="cl">Check indices of the whats_new table.
</span></span><span class="line"><span class="cl">Check indices of the cards table.
</span></span><span class="line"><span class="cl">Adding cards_abiduri index to the cards table, this can take some time...
</span></span><span class="line"><span class="cl">cards table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the cards_properties table.
</span></span><span class="line"><span class="cl">Check indices of the calendarobjects_props table.
</span></span><span class="line"><span class="cl">Check indices of the schedulingobjects table.
</span></span><span class="line"><span class="cl">Check indices of the oc_properties table.
</span></span><span class="line"><span class="cl">Adding properties_pathonly_index index to the oc_properties table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the oc_jobs table.
</span></span><span class="line"><span class="cl">Adding job_lastcheck_reserved index to the oc_jobs table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">$ <span class="nb">exit</span>
</span></span><span class="line"><span class="cl"><span class="c1"># exit</span></span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>关于 SELinux</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-1-16-selinux/</link>
    <pubDate>Mon, 17 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-1-16-selinux/</guid>
    <description><![CDATA[<p>来自互联网的一些阅读材料。</p>
<h2 id="docker-默认安全选项">Docker 默认安全选项</h2>
<p><a href="https://docs.docker.com/engine/security/seccomp/" target="_blank" rel="noopener noreffer ">https://docs.docker.com/engine/security/seccomp/</a></p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># docker info</span>
</span></span><span class="line"><span class="cl">Client:
</span></span><span class="line"><span class="cl"> Context:    default
</span></span><span class="line"><span class="cl"> Debug Mode: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Plugins:
</span></span><span class="line"><span class="cl">  app: Docker App <span class="o">(</span>Docker Inc., v0.9.1-beta3<span class="o">)</span>
</span></span><span class="line"><span class="cl">  buildx: Build with BuildKit <span class="o">(</span>Docker Inc., v0.6.1-docker<span class="o">)</span>
</span></span><span class="line"><span class="cl">  scan: Docker Scan <span class="o">(</span>Docker Inc., v0.8.0<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Server:
</span></span><span class="line"><span class="cl"> Containers: <span class="m">17</span>
</span></span><span class="line"><span class="cl">  Running: <span class="m">15</span>
</span></span><span class="line"><span class="cl">  Paused: <span class="m">0</span>
</span></span><span class="line"><span class="cl">  Stopped: <span class="m">2</span>
</span></span><span class="line"><span class="cl"> Images: <span class="m">16</span>
</span></span><span class="line"><span class="cl"> Server Version: 20.10.8
</span></span><span class="line"><span class="cl"> Storage Driver: overlay2
</span></span><span class="line"><span class="cl">  Backing Filesystem: extfs
</span></span><span class="line"><span class="cl">  Supports d_type: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  Native Overlay Diff: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  userxattr: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Logging Driver: json-file
</span></span><span class="line"><span class="cl"> Cgroup Driver: systemd
</span></span><span class="line"><span class="cl"> Cgroup Version: <span class="m">1</span>
</span></span><span class="line"><span class="cl"> Plugins:
</span></span><span class="line"><span class="cl">  Volume: <span class="nb">local</span>
</span></span><span class="line"><span class="cl">  Network: bridge host ipvlan macvlan null overlay
</span></span><span class="line"><span class="cl">  Log: awslogs fluentd gcplogs gelf journald json-file <span class="nb">local</span> logentries splunk syslog
</span></span><span class="line"><span class="cl"> Swarm: inactive
</span></span><span class="line"><span class="cl"> Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
</span></span><span class="line"><span class="cl"> Default Runtime: runc
</span></span><span class="line"><span class="cl"> Init Binary: docker-init
</span></span><span class="line"><span class="cl"> containerd version: e25210fe30a0a703442421b0f60afac609f950a3
</span></span><span class="line"><span class="cl"> runc version: v1.0.1-0-g4144b63
</span></span><span class="line"><span class="cl"> init version: de40ad0
</span></span><span class="line"><span class="cl"> Security Options:
</span></span><span class="line"><span class="cl">  seccomp
</span></span><span class="line"><span class="cl">   Profile: default
</span></span><span class="line"><span class="cl"> Kernel Version: 3.10.0-1160.42.2.el7.x86_64
</span></span><span class="line"><span class="cl"> Operating System: Red Hat Enterprise Linux Server 7.9 <span class="o">(</span>Maipo<span class="o">)</span>
</span></span><span class="line"><span class="cl"> OSType: linux
</span></span><span class="line"><span class="cl"> Architecture: x86_64
</span></span><span class="line"><span class="cl"> CPUs: <span class="m">8</span>
</span></span><span class="line"><span class="cl"> Total Memory: 23.39GiB
</span></span><span class="line"><span class="cl"> Name: gene-k8s-k8sc-node1
</span></span><span class="line"><span class="cl"> ID: VGBN:P5LX:RTQG:OX67:INYM:ZUHD:W6NQ:FWWL:KUV5:NZ6N:2DKH:ZIYL
</span></span><span class="line"><span class="cl"> Docker Root Dir: /opt/nsp/docker
</span></span><span class="line"><span class="cl"> Debug Mode: <span class="nb">false</span>
</span></span><span class="line"><span class="cl">  Registry: https://index.docker.io/v1/
</span></span><span class="line"><span class="cl"> Labels:
</span></span><span class="line"><span class="cl"> Experimental: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Insecure Registries:
</span></span><span class="line"><span class="cl">   127.0.0.0/8
</span></span><span class="line"><span class="cl"> Live Restore Enabled: <span class="nb">false</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">WARNING: API is accessible on http://0.0.0.0:2375 without encryption.
</span></span><span class="line"><span class="cl">         Access to the remote API is equivalent to root access on the host. Refer
</span></span><span class="line"><span class="cl">         to the <span class="s1">&#39;Docker daemon attack surface&#39;</span> section in the documentation <span class="k">for</span>
</span></span><span class="line"><span class="cl">         more information: https://docs.docker.com/go/attack-surface/
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># sestatus </span>
</span></span><span class="line"><span class="cl">SELinux status:                 enabled
</span></span><span class="line"><span class="cl">SELinuxfs mount:                /sys/fs/selinux
</span></span><span class="line"><span class="cl">SELinux root directory:         /etc/selinux
</span></span><span class="line"><span class="cl">Loaded policy name:             targeted
</span></span><span class="line"><span class="cl">Current mode:                   permissive
</span></span><span class="line"><span class="cl">Mode from config file:          permissive
</span></span><span class="line"><span class="cl">Policy MLS status:              enabled
</span></span><span class="line"><span class="cl">Policy deny_unknown status:     allowed
</span></span><span class="line"><span class="cl">Max kernel policy version:      <span class="m">31</span>
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># ps -eZ | grep docker</span>
</span></span><span class="line"><span class="cl">system_u:system_r:unconfined_service_t:s0 <span class="m">1254</span> ? 00:00:00 docker
</span></span><span class="line"><span class="cl">system_u:system_r:container_runtime_t:s0 <span class="m">30862</span> ? 00:02:10 dockerd
</span></span><span class="line"><span class="cl">system_u:system_r:container_runtime_t:s0 <span class="m">30976</span> ? 00:00:00 docker
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># docker context ls</span>
</span></span><span class="line"><span class="cl">NAME        DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT                ORCHESTRATOR
</span></span><span class="line"><span class="cl">default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock   https://127.0.0.1:6443 <span class="o">(</span>default<span class="o">)</span>   swarm</span></span></code></pre></div></div>
<p><a href="https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html" target="_blank" rel="noopener noreffer ">https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html</a></p>]]></description>
</item>
<item>
    <title>升级/更新 Helm Chart</title>
    <link>https://geneliu.itaghome.win/zh-cn/2021-02-27-15-how-to-upgrade-update-helm/</link>
    <pubDate>Sat, 27 Feb 2021 14:55:56 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2021-02-27-15-how-to-upgrade-update-helm/</guid>
    <description><![CDATA[<p>我从 ChartCenter 安装了一些 chart，但想稍后切换到每个 chart 的原始仓库，以防 ChartCenter 以后不再可用。</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm list -n hass
</span></span><span class="line"><span class="cl">WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">NAME     	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART               	APP VERSION
</span></span><span class="line"><span class="cl">hass     	hass     	<span class="m">1</span>       	2021-01-22 16:01:56.958870812 -0500 EST	deployed	home-assistant-5.4.1	2020.12.1
</span></span><span class="line"><span class="cl">mosquitto	hass     	<span class="m">1</span>       	2021-01-22 14:37:06.899630717 -0500 EST	deployed	mosquitto-0.7.0     	2.0.4
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">helm upgrade -n hass hass home-assistant --repo https://k8s-at-home.com/charts/ -f hass/hass-values.yml</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>升级 Home Assistant</title>
    <link>https://geneliu.itaghome.win/zh-cn/2020-02-05-upgrade-hass/</link>
    <pubDate>Wed, 05 Feb 2020 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2020-02-05-upgrade-hass/</guid>
    <description><![CDATA[<p>升级 Home Assistant 以使用最新的 Helm chart 和应用程序版本。</p>
<h3 id="检查现有的-chart">检查现有的 Chart</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm list
</span></span><span class="line"><span class="cl">NAME     	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                	APP VERSION
</span></span><span class="line"><span class="cl">emqx     	default  	<span class="m">1</span>       	2020-01-15 09:50:07.876751946 -0500 EST	deployed	emqx-v4.0.0          	v4.0.0     
</span></span><span class="line"><span class="cl">hass     	default  	<span class="m">3</span>       	2020-01-22 14:40:55.119051419 -0500 EST	deployed	home-assistant-0.9.11	0.101.2    
</span></span><span class="line"><span class="cl">nextcloud	default  	<span class="m">1</span>       	2019-12-24 16:39:19.78369805 -0500 EST 	deployed	nextcloud-1.9.1      	17.0.0</span></span></code></pre></div></div>
<h3 id="更新-helm-仓库">更新 Helm 仓库</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-shell">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">helm repo update
</span></span><span class="line"><span class="cl">Hang tight <span class="k">while</span> we grab the latest from your chart repositories...
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;geneliu&#34;</span> chart repository
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;emqx&#34;</span> chart repository
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;stable&#34;</span> chart repository
</span></span><span class="line"><span class="cl">Update Complete. ⎈ Happy Helming!⎈ </span></span></code></pre></div></div>
<h3 id="升级-home-assistant-chart">升级 Home Assistant Chart</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm upgrade hass stable/home-assistant -f ./hass.yaml 
</span></span><span class="line"><span class="cl">Release <span class="s2">&#34;hass&#34;</span> has been upgraded. Happy Helming!
</span></span><span class="line"><span class="cl">NAME: hass
</span></span><span class="line"><span class="cl">LAST DEPLOYED: Wed Feb  <span class="m">5</span> 13:10:39 <span class="m">2020</span>
</span></span><span class="line"><span class="cl">NAMESPACE: default
</span></span><span class="line"><span class="cl">STATUS: deployed
</span></span><span class="line"><span class="cl">REVISION: <span class="m">4</span>
</span></span><span class="line"><span class="cl">TEST SUITE: None
</span></span><span class="line"><span class="cl">NOTES:
</span></span><span class="line"><span class="cl">1. Get the application URL by running these commands:
</span></span><span class="line"><span class="cl">  http://myhome.example.com/</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Kubernetes 作为 IoT 基础 (用于 Home Assistant 等)</title>
    <link>https://geneliu.itaghome.win/zh-cn/2020-02-04-k3s-iot-base/</link>
    <pubDate>Tue, 04 Feb 2020 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2020-02-04-k3s-iot-base/</guid>
    <description><![CDATA[<p>我已经有不少应用程序被容器化并由 Docker Compose 管理。维护应用级别的 Docker Compose YAML 文件工作量很小。然而，仍有一些零碎的组件需要我不时手动更新或升级。因此，我决定进行迁移，这是记录该任务的第一篇博客。</p>]]></description>
</item>
</channel>
</rss>
