云原生学习

学习k8s的实验资料


题库

<h1>基于角色的访问控制-RBAC</h1> <p>kubectl create clusterrole -h kubectl create clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] [--dry-run=server|client|none] [options] --verb=create (权限) --resource=deployments,statefulsets,daemonsets #(记住要加s,要不然会报错)</p> <p>一定要先指命名空间 -n app-team1 先指命令空间 kubectl -n app-team1 create serviceaccount -h #可以加-h 查看命令帮助 例子: Usage: kubectl create serviceaccount NAME [--dry-run=server|client|none] [options]</p> <p>kubectl -n app-team1 create rolebinding -h #已经指明rolebinding 如果没有就classrole</p> <p>Usage: kubectl create rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none] [options]</p> <p>kubectl -n app-team1 create rolebinding cicd-token-binding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token</p> <h1>创建rolebinding NAME</h1> <h1>指定clusterrole</h1> <p>--cluster=deployment-clusterrole </p> <p>--serviceaccount=app-team1:cicd-token</p> <p>kubectl describe -n app-team1 rolebindings.rbac.authorization.k8s.io cicd-token-binding</p> <h1>注意点</h1> <p>命名空间一定要跟上</p> <h2>kubectl create role</h2> <p>创建Role对象,定义在某一名字空间中的权限。例如: 创建名称为“pod-reader”的Role对象,允许用户对 Pods执行get、watch和list操作: kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods</p> <h2>kubectl create clusterrole</h2> <p>创建ClusterRole对象。例如: 创建名为“pod-reader”的ClusterRole对象,允许用户对Pods对象执行get、watch和list操作: kubectl create ClusterRole pod-reader --verb=get,list,watch --resource=pods</p> <h2>kubectl create rolebinding</h2> <p>在特定的名字空间中对Role或ClusterRole授权,例如: 在名字空间“acme”中,将名为 admin 的ClusterRole中权限授予名称“bob”的用户: kubectl create rolebinding bob-admin-binding --clusterrole=admin --user=bob --namespace=acme</p> <h2>kubectl create clusterrolebinding</h2> <p>在整个集群(所有名字空间)中用ClusterRole授权。例如: 在整个集群范围,将名为 cluster-admin 的ClusterRole中定义的权限授予名为root的用户: kybectl create clusterrolebinding root-cluster-admin-binging --clusterrole=cluster-admin --user=root <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=db65a3133548e04717123c876d0dfdff&amp;amp;file=file.png" alt="" /> 检查 kubectl -n app-team1 describe rolebinding cicd-token</p> <h1>节点维护-指定node节点不可用</h1> <p>首先,确定想要清空的节点名称,可以用以下命令列出集群中所有节点: kubectl get nodes 清空节点: kubectl drain &lt;node name&gt;</p> <h1>腾空节点</h1> <p>通过将节点标记为不可调度并腾空节点为节点做升级准备: 将&lt;node-to-drain&gt; 替换为你要腾空的控制面节点名称 kubectl drain &lt;node-to-drain&gt; --ignore-daemonsets 升级第一个控制面节点</p> <ul> <li>升级kubeadm: 用最新的补丁版本号替换1.23.x-00中的x apt-mark unhold kubeadm &amp;&amp; \ apt-get update &amp;&amp; apt-get install -y kubeadm=1.23.x-00 &amp;&amp; \ apt-mark hold kubeadm 验证下载操作正常,并且kubeadm版本正确: kubeadm version 验证升级计划: kubeadm upgrade plan 选择要升级到的目标版本,运行合适的命令。例如: 将x替换为你为此次升级所选择的补丁版本号 sudo kubeadm upgrade apply v1.23.x 注意添加 --etcd-upgrade=false 可以使用-h帮助,来查找--etcd-upgrade字段</li> <li>升级kubelet和kubectl 用最新的补丁版本替换1.23.x-00中的x apt-mark unhold kubelet kubectl &amp;&amp; \ apt-get update &amp;&amp; apt-get install -y kubelete=1.23.x-00 kubectl=1.23.x-00 &amp;&amp; \ apt-mark hold kubelet kubectl</li> <li>解除节点的保护: 将节点标记为可调度,让其重新上线: 将&lt;node-to-drain&gt;替换为你的节点名称 kubectl uncordon &lt;node-to-drain&gt; <h1>Etcd数据库</h1></li> </ul>

页面列表

ITEM_HTML