Kubercter-CKA考题考试记录

source <(kubectl completion bash)  命令补全
如不能补全先安装apt-get install bash-completion包

查SN
wmic bios get serialnumber
SerialNumber
ssh candidate@11.0.1.112
问:The connection to the server 11.0.1.111:6443 was refused - did you specify the right host or port?
1.检查环境变量情况(正常)
# env | grep -i kub
2.检查docker服务(正常)
# systemctl status docker.service
3.检查kubelet服务(表面正常)
# systemctl status kubelet.service
4.查看端口是是否被监听(没有监听)
# netstat -pnlt | grep 6443
5.检查防火墙状态(正常)
# systemctl status firewalld.service
6.查看日志
# journalctl -xeu kubelet
6.1 重新导入一下API镜像即可。
# docker load -i kube-apiserver-amd64_v1.9.0.tar
6.2 重启docker和kubelet服务
# systemctl restart docker.service
 # systemctl restart kubelet.service

一、RBAC基于角色的访问控制(Role-Based Access Control)。
kubectl create clusterrole -h
创建集群角色
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
 创建集群角色 部署角色 动作=创建,资源= 部署(deployments)、有状态副本集(statefulsets)、守护进程集(daemonsets)

kubectl -n app-team1 create serviceaccount cicd-token 
 创建命名空间为app-team1的服务账户,将CICD令牌绑定

kubectl -n app-team1 create rolebinding  cicd-token-rolebinding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
创建名为cicd-token-rolebinding(角色绑定),并将deployment-clusterrole集群角色授权给名为app-team1:cicd-token的服务账户。在Kubernetes中,角色绑定用于将角色授权绑定到指定的用户或服务账户上,从而实现对资源的授权管理。指定了命名空间为app-team1,并创建了名为cicd-token-rolebinding的角色绑定,将deployment-clusterrole集群角色授权给名为app-team1:cicd-token的服务账户。可以授权app-team1:cicd-token服务账户对部署资源进行操作

kubectl -n app-team1 describe rolebinding  cicd-token-rolebinding   检查cicd口令角色绑定的信息

二、查看pod cpu
kubectl top pod -h 

Options:
-A, --all-namespaces=false:
If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even
if specified with --namespace.

--containers=false:
    If present, print usage of containers within a pod.

--field-selector='':
    Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector
    key1=value1,key2=value2). The server only supports a limited number of field queries per type.

--no-headers=false:
    If present, print output without headers.

-l, --selector='':
    Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2). Matching
    objects must satisfy all of the specified label constraints.

--sort-by='':
    If non-empty, sort pods list using specified field. The field can be either 'cpu' or 'memory'.

--sum=false:
    Print the sum of the resource usage

--use-protocol-buffers=true:
    Enables using protocol-buffers to access Metrics API.
word count: 143, token count: 396

Options的翻译是命令选项。在Kubernetes中,命令选项用于为kubectl命令指定不同的参数和标志,以实现不同的功能。上述命令中列出了kubectl top pod命令的各个选项,包括:

-A, --all-namespaces:如果指定,则在所有命名空间中列出所请求的对象。忽略当前上下文中的命名空间,即使使用--namespace指定也是如此。

--containers:如果指定,则打印容器在Pod内的使用情况。

--field-selector:过滤Pod使用的字段选择器,支持'='、'=='和'!='。例如:--field-selector key1=value1,key2=value2。服务器仅支持每种类型的有限数量的字段查询。

--no-headers:如果指定,则打印输出时不包含标题。

-l, --selector:选择器(标签查询)用于过滤,支持'='、'=='和'!='。例如:-l key1=value1,key2=value2。匹配的对象必须满足所有指定的标签约束条件。

--sort-by:如果非空,则使用指定的字段对Pod列表进行排序。该字段可以是'cpu'或'memory'。

--sum:打印资源使用情况的总和。

--use-protocol-buffers:启用使用协议缓冲区访问Metrics API。

word count: 289, token count: 760, tokens used: 4309, model: gpt-3.5-turbo

答题:
kubectl top pod -l name=cpu-loader --sort-by=cpu -A 
查看CPU名称为cpu-loader--排序=CPU -A所有命名空间

echo "redis-test">/opt/KUTR000401/KUTR00401.txt
将pod名称写入指定文件
cat /opt/KUTR000401/KUTR00401.txt
查看文件内容

三、配置网络策略networkpolicy

查看所有 ns 的标签 label
kubectl get ns --show-labels
如果访问者的 namespace 没有标签 label,则需要手动打一个。如果有一个独特的标签 label,则也可以直接使用。
kubectl label ns echo project=echo

vim networkpolicy.yaml 创建VIM编辑网络策略yaml文件
kubectl apply -f networkpolicy.yaml 应用网络策略yaml文件

kubectl describe networkpolicy -n my-app 检查my-app网络策略文件
 cat networkpolicy.yaml  查看yaml文件
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-part-from-namespace
  namespace: my-app
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          project: echo
    ports:
    - protocol: TCP
      port: 9200

四、暴露服务service

kubectl get deploy front-end
检查deployment信息
kubectl edit deployment front-end

kubectl expose deployment front-end --type=NodePort --port=80 --target-port=80 --name=front-end-svc
将名为“front-end”的Deployment暴露成一个Service,并将其类型设置为NodePort。该Service将监听集群中所有节点的指定端口,并将流量转发到该Deployment中所有Pod的80端口。这个命令还指定了Service的名称为“front-end-svc”。

 kubectl get svc front-end-svc -o wide
检查端口服务及名称
kubectl get deployment front-end -o wide
检查部署前端类型及名称

五、创建Ingress


vim ingress.yaml 创建ingress.yaml文件

  apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ping
  namespace: ing-internal
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /hello
        pathType: Prefix
        backend:
          service:
            name: hello
            port:
              number: 5678
cat ingress.yaml 查看ingress.yaml文件
 kubectl apply -f ingress.yaml
应用yaml文件

kubectl get ingress -n ing-internal
查看获取IP
curl 10.108.39.2/hello
测试IP连通性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值