附1:配置dokcer socks5代理
mkdir /lib/systemd/system/docker.service.d/
cat >/lib/systemd/system/docker.service.d/socks5-proxy.conf<<EOF
[Service]
Environment="ALL_PROXY=socks5://10.0.0.254:10808"
EOF
# 代理地址這里配置的是v2rayN的客戶端地址端口
systemctl daemon-reload
systemctl restart docker
附2:開啟Pod Preset
- 特性狀態(tài):Kubernetes v1.6 [alpha]
Pod Preset
是一種 API 資源坦辟,在 Pod 創(chuàng)建時唆香,用戶可以用它將額外的運行時需求信息注入 Pod国觉。 使用標(biāo)簽選擇算符 來指定 Pod Preset 所適用的 Pod。
- 已啟用 API 類型
settings.k8s.io/v1alpha1/podpreset
宽档。 例如叉信,這可以通過在 API 服務(wù)器的--runtime-config
配置項中包含 - 已啟用準(zhǔn)入控制器
PodPreset
。 啟用的一種方式是在 API 服務(wù)器的--enable-admission-plugins
配置項中包含PodPreset
。
20c20
< - --enable-admission-plugins=NodeRestriction,PodPreset
---
> - --enable-admission-plugins=NodeRestriction
42d41
< - --runtime-config=settings.k8s.io/v1alpha1/podpreset
附3:證書年限修改
查看當(dāng)前證書使用年限
cd /etc/kubernetes/pki/
openssl x509 -in apiserver.crt -text -noout
cfssl-certinfo -cert apiserver.crt
配置go語言環(huán)境go下載地址
tar axf go1.15.3.linux-amd64.tar.gz -C /usr/local/
cat >>/etc/profile<<\EOF
export PATH=$PATH:/usr/local/go/bin
EOF
go version
# 下載kubeadm源碼
git clone https://github.com/kubernetes/kubernetes.git
# 查看本機kubeadm版本
kubeadm version
# 切換版本
git checkout -b remotes/origin/release-1.19.2 v1.19.2
# 編輯cmd/kubeadm/app/util/pkiutil/pki_helpers.go 在1.14版本前是staging/src/k8s.io/client-go/util/cert/cert.go
# 在此行func NewSignedCert 下面添加
const duration3650d = time.Hour * 24 * 365 * 10
# 修改此行
NotAfter: time.Now().Add(duration3650d).UTC(),
make WHAT=cmd/kubeadm GOFLAGS=-v
# 將kubeadm進行替換
mv /usr/bin/kubeadm /usr/bin/kubeadm.old
cp _output/bin/kubeadm /usr/bin/kubeadm
chmod a+x /usr/bin/kubeadm
cp -r /etc/kubernetes/pki/ /etc/kubernetes/pki.old
cd /etc/kubernetes/pki
# 您可以隨時使用該kubeadm alpha certs renew命令手動續(xù)訂證書屡贺。
# 如果您正在運行HA群集,則需要在所有控制平面節(jié)點上執(zhí)行此命令
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml # kubeadm-config.yaml是安裝時配置用的yaml文件
cd /etc/kubernetes/pki
# 查看更改后結(jié)果
openssl x509 -in apiserver.crt -text -noout | grep Not
# 可以使用check-expiration子命令來檢查證書何時過期,kubeadm無法管理由外部CA簽名的證書锌杀。
kubeadm alpha certs check-expiration
附4:docker相關(guān)
更改docker存儲目錄
/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current --graph /data/docker
用戶名稱空間user namespace
- 運行docker deamon進程的時候加入?yún)?shù)
--userns-remap=default
甩栈,如:ubuntu中是修改/etc/default/docker中的DOCKER_OPTS,追加配置--userns-remap=default
容器內(nèi),看上去仍然是root用戶.即:有了user namespace之后糕再,可以將宿主機上的普通用戶映射為容器的root用戶.
默認(rèn)docker新建了一個用戶和用戶組都叫做dockremap容器內(nèi)的root用戶映射到宿主機的這個dockremap用戶上.cat /etc/passwd
-
自定義映射用戶首先在宿主機上創(chuàng)建用戶及用戶組量没,在啟動docker deamon的時候傳入如下參數(shù).
--userns-remap=<uid>
--userns-remap=<uid>:<gid>
--userns-remap=<username>
--userns-remap=<username>:<groupname>
4. 有些情況下我們可能需要回到?jīng)]有開啟用戶隔離的場景,這時可以通過 --userns=host 參數(shù)為單個的容器禁用用戶隔離功能
### 附5:Token失效
```sh
# 創(chuàng)建新的token --ttl duration 默認(rèn)值:24h0m0s 0永不過期
kubeadm token create --ttl 0
# 查看創(chuàng)建的token
kubeadm token list
# 獲取--discovery-token-ca-cert-hash值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
# 在master上生成用于新master加入的證書 phase 指定項目初始化
# 使用以下階段將控制平面證書上傳到集群突想。默認(rèn)情況下殴蹄,證書和加密密鑰會在兩個小時后過期
kubeadm init phase upload-certs --upload-certs