K8s入门基础知识
基础名词
- 节点/
node
:一个节点是一个运行Kubernetes 中的主机。 - 容器组/
pod
:一个 Pod 对应于由若干容器组成的一个容器组,同个组内的容器共享一个存储卷(volume)。 - 服务/
services
:一个 Kubernetes 服务是容器组逻辑的高级抽象,同时也对外提供访问容器组的策略。 - 容器组生命周期/
pos-states
:包含所有容器状态集合,包括容器组状态类型,容器组生命周期,事件,重启策略,以及 replication controllers。
基础命令
1 | #创建部署 |
kubeconfig
是远程连接集群的授权证书配置文件,不管集群管理,还是流水线发布都会用到,集群下面的是默认管理员的账号,最好是用个人自己的集群kubeConfig。
安装成功后位于~/..kube/config
1 | #----集群参数配置--- |
创建用户认证授权的 kubeconfig 文件(待验证)
在
/etc/kubernetes/ssl
目录创建devuser-csr.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"CN": "devuser",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "System"
}
]
}生成CA证书和密钥
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes devuser-csr.json | cfssljson -bare devuser
创建用户的kubeconfig 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# 设置集群参数
export KUBE_APISERVER="https://172.20.0.113:6443"
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=devuser.kubeconfig
# 设置客户端认证参数
kubectl config set-credentials devuser \
--client-certificate=/etc/kubernetes/ssl/devuser.pem \
--client-key=/etc/kubernetes/ssl/devuser-key.pem \
--embed-certs=true \
--kubeconfig=devuser.kubeconfig
# 设置上下文参数
kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=devuser \
--namespace=dev \
--kubeconfig=devuser.kubeconfig
# 设置默认上下文
kubectl config use-context kubernetes --kubeconfig=devuser.kubeconfig查看上下文,执行
kubectl config get-contexts
,会显示~/.kube/config
的账号替换后,执行
cp -f ./devuser.kubeconfig ~/.kube/config
可以显示新的账号绑定角色,限制用户可以访问那几个空间(namespace),例如
1
2
3#---这样 devuser 用户对 dev 和 test 两个 namespace 具有完全访问权限。
kubectl create rolebinding devuser-admin-binding --clusterrole=admin --user=devuser --namespace=dev
kubectl create rolebinding devuser-admin-binding --clusterrole=admin --user=devuser --namespace=test测试,执行
kubectl get pods --namespace default
会返回Forbidden
无权限