K8S使用笔记(补充中...)
K8S使用笔记一、文章推荐二、images1.imagePullSecrets1.1 前言1.2 docker客户端认证1.3 Docker registry Secret创建三、host映射三、版本及资源
K8S使用笔记
一、文章推荐
二、images
1.imagePullSecrets
1.1 前言
Kubernetes常用的Secret有以下3种,本章节的主要讲
kubernetes.io/dockercfg
也就是imagePullSecrets
对应的Secret类型。
Opaque(default): 任意字符串
kubernetes.io/service-account-token: 作用于ServiceAccount,就是上面说的。
kubernetes.io/dockercfg: 作用于Docker registry,用户下载docker镜像认证使用。
1.2 docker客户端认证
docker私服镜像的拉取认证配置文件默认在
~/.docker/config.json
可以通过cat ~/.docker/config.json
命令查询认证内容
其中auth属性使用 base64加密(可逆)。
{
"auths": {
"192.168.10.122": {
"auth": "YWRtaW46SGFyYm9yMTIzNDU="
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.1 (linux)"
}
}
- 加密过程
echo -n "admin:Harbor12345" | base64
- 解密过程
echo -n "YWRtaW46SGFyYm9yMTIzNDU=" | base64 -d
1.3 Docker registry Secret创建
Docker registry Secret创建有以下几种方式
- 使用客户端认证配置文件
~/.docker/config.json
创建
kubectl create secret generic harborsecret \
--from-file=.dockerconfigjson=/root/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
- 使用密码创建
kubectl create secret docker-registry harborsecret --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
- 复制现有apply -f harborsecret.yaml
kubectl -n test get secret othersecret -o yaml
apiVersion: v1
kind: Secret
metadata:
name: harborsecret
namespace: test
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEwLjEyMiI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4xIChsaW51eCkiCgl9Cn0=
type: kubernetes.io/dockerconfigjson
kubectl -n test apply -f harborsecret.yaml
最终生成的Secret使用base64加密(可逆)
- 加密过程
将整个客户端认证配置文件
~/.docker/config.json
内容通过base64加密之后,作为.dockerconfigjson
属性值
cat ~/.docker/config.json | base64
- 解密过程
kubectl get secrets harborsecret --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d
三、host映射
hostAliases:
- ip: "192.168.1.100"
hostnames:
- "client1.org.com"
三、版本及资源
- 客户端和服务端版本号
kubectl version -o json
- api-resources版本
kubectl api-resources |grep deployment
extensions/v1beta1
和apps/v1
区别:
extensions/v1beta1 和 apps/v1 是 Kubernetes 中的两个不同的 API 版本,用于部署和管理应用程序。它们之间的主要区别在于 API 的可用功能和使用的 Kubernetes 版本。
extensions/v1beta1 是旧版本的 API,已从 Kubernetes 1.16 版本起弃用。 它仍然可用于较早的 Kubernetes 版本,但现在已不再推荐使用。其中一个主要的资源是 Deployment,还有其他如 Ingress 和 ReplicaSet 等资源。
apps/v1 是新版本的 API,已从 Kubernetes 1.9 版本起开始引入,是部署应用程序的新标准。 其中一个主要的资源是 Deployment,还有包括 StatefulSet 在内的其他控制器。apps/v1 还引入了一些新功能,如 Rolling Updates 和 Rollbacks 等。
因此,建议使用 apps/v1 而不是 extensions/v1beta1,以便使用更多功能并保持对 Kubernetes 最新版本的兼容性
更多推荐
所有评论(0)