cka考试学习笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

CKA

docker

Docker commit

docker save -o dao.tar nginx:latest

docker save -o nginx:latest | gzip > dao.tar

docker load -i dao.tar

docker cp dao.tai adfae3:/tmp/

nsenter

.dockerignore

kubernetes

i=xxx;kubectl create namespace $i;alias kubectl=“kubectl -n $i”

pod

kubectl run nginx --image=nginx --restart=Never --dry-run=client -o yaml > nginx2-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx2
  name: nginx2
spec:
  containers:
  - image: nginx
    name: nginx2
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never

kubectl create -f nginx2-pod.yaml

Kubectl describe po nginx

kubectl logs nginx

kubectl explain po

apiVersion: v1
kind: Pod
metadata:
  name: pod-base
spec:
  containers:
  - image: daocloud.io/busybox
    name: pod-base
    command: ["sleep", "3600"]
    ports:
    - containerPort: 80
    env:
    - name: DEMO_GREETING
      value: "hello from the environment"
    - name: DEMO_GREETING2
      value: "hello from the environment2"

kubectl run pod-base --image=daocloud.io/busybox --port=80 --env A=a --env B=b --command “sleep 3600” --dry-run=client -o yaml > run-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod-base
  name: pod-base
spec:
  containers:
  - command:
    - sleep 3600
    env:
    - name: A
      value: a
    - name: B
      value: b
    image: daocloud.io/busybox
    name: pod-base
    ports:
    - containerPort: 80
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

/etc/kubernetes/manifests

ps -ef | grep kubelet

cat /var/kubelet/config.yaml | grep staticPodPath

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod-init
  name: pod-init
spec:
  initContainers:
  - name: pod1-init
    image: daocloud.io/busybox
    command:
    - sleep
    - "10"
  containers:
  - command:
    - sleep
    - "10"
    env:
    - name: A
      value: a
    image: daocloud.io/busybox
    name: pod-init
    ports:
    - containerPort: 80
    readinessProbe:
      exec:
        command:
        - cat
        - /
      initialDelaySeconds: 5
      periodSeconds: 5
    resources:
      limits:
        cpu: "0.5"
        memory: 0.5G
      requests:
        cpu: "0.01"
        memory: 0.01G
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

Deploymenyts

kubectl create deploy nginx-app --image=nginx:1.10.2-alpine --dry-run=client -o yaml > deploy.yaml

piVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: nginx-app
  name: nginx-app
  namespace: york
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-app
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx-app
    spec:
      containers:
      - image: nginx:1.10.2-alpine
        name: nginx
        resources: {}
status: {}
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record
kubectl rollout status deployment.v1.apps/nginx-deployment
kubectl rollout history deployment.v1.apps/nginx-deployment
kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2

DaemonSet

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: ds-kubesc12345
  name: ds-kubesc12345
  namespace: york
spec:
  selector:
    matchLabels:
      app: ds-kubesc12345
  template:
    metadata:
      labels:
        app: ds-kubesc12345
    spec:
      containers:
      - image: nginx:1.10.2-alpine
        name: nginx
        resources: {}

job

apiVersion: batch/v1
kind: Job
metadata:
  name: pijob
spec:
  parallelism: 2
  completions: 10
  template:
    spec:
      containers:
      - name: pijob
        image: daocloud.io/busybox
        command:
        - "sh"
        - "-c"
        - "echo Beijing"
      restartPolicy: Never
  backoffLimit: 4

kubectl get deploy nginx-backend -n baz -o yaml

kubectl get po -l app=nginx -l service=backend -n baz -o name > test.txt

–sort-by

pod_name.service_name.namespace_name.svc.clusterdomain

pv

apiVersion: v1
kind: PersistentVolume
metadata:
  name: york-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/root/yrok/data"

pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: york-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Pod-pvc

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim

hostPath

apiVersion: v1
kind: Pod
metadata:
  name: york-pv-pod
spec:
  volumes:
  - name: york-path
    hostPath:
      type: Directory
      path: "/root/york/data"
  containers:
    - name: york-pv-container
      image: redis
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/root/data/"
          name: york-path

ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-demo
data:
  # 类属性键;每一个键都映射到一个简单的值
  player_initial_lives: "3"
  ui_properties_file_name: "user-interface.properties"
  #
  # 类文件键
  game.properties: |
    enemy.types=aliens,monsters
    player.maximum-lives=5
  user-interface.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true

Secret

kubectl create secret generic super-secret --from-literal=AAA=hello

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: redis
    volumeMounts:
    - name: foo
      mountPath: "/etc/foo"
      readOnly: true
  volumes:
  - name: foo
    secret:
      secretName: super-secret

Secret-env

apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  volumes:
  - name: secret-volume
    secret:
      secretName: super-secret
  containers:
  - name: mycontainer
    image: redis
    env:
      - name: CONFIG_ENV
        valueFrom:
          secretKeyRef:
            name: super-secret
            key: AAA
  restartPolicy: Never

taints

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: ds-york
  name: ds-york
  namespace: york
spec:
  selector:
    matchLabels:
      app: ds-york
  template:
    metadata:
      labels:
        app: ds-york
    spec:
      tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: "NoSchedule"
      containers:
      - image: nginx:1.10.2-alpine
        name: nginx
        resources

kubeadm

106.75.254.20  node
113.31.102.239  master
shiedek.ee7Ua,t

 kubeadm join master:6443 --token yya78n.x535uqhn4vg232i0 \
    --discovery-token-ca-cert-hash sha256:7f5b13b570f7764ebc02e8429a4095c2d5501cbfb84802c6c35e285626f5d681 \
    --control-plane --certificate-key bee63c0cc910164923889989c3435f20b24439f0aba241018a39be180579702d

kubeadm join master:6443 --token yya78n.x535uqhn4vg232i0 \
    --discovery-token-ca-cert-hash sha256:7f5b13b570f7764ebc02e8429a4095c2d5501cbfb84802c6c35e285626f5d681
    
    
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

etcd

etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save backup.db
ETCDCTL_API=3 etcdctl --endpoints https:127.0.0.1:2379 --cacert=/opt/dir/ca.crt --cert=/opt/dir/etcd-client.crt --key=/opt/dir/etcd-client.key snapshot save  /data/backup/etcd-snapshot.db

训练

第一题

kubectl run demo0 --image=harbor.daocloud.cn/daolab/daolab:nginx

apiVersion: v1
kind: Pod
metadata:
  name: demo0
spec:
  containers:
  - image: harbor.daocloud.cn/daolab/daolab:nginx
    name: nginx

第二题

kubectl exec -it demo0 -- sh -c 'curl 127.0.0.1'
kubectl exec -it demo0 -- sh -c 'curl 127.0.0.1/404'
kubectl logs demo0 |grep '404' >/opt/demo1.txt

第三题

kubectl exec -it demo0 -- sh -c 'echo "hello world" >/usr/share/nginx/html/index.html'
kubectl exec -it demo0 -- sh -c 'curl 127.0.0.1'
kubectl exec -it demo0 -- sh -c 'curl 127.0.0.1/404'
kubectl logs demo0 |grep '404' >/opt/demo1.txt

第四题

kubectl run demo4 --image=harbor.daocloud.cn/daolab/daolab:nginx --dry-run=client -o yaml > pod.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: demo4
  name: demo4
spec:
  initContainers:
  - image: harbor.daocloud.cn/daolab/daolab:nginx
    name: init-containers
    command:
    - sh
    - -c
    - "sleep 10"
  containers:
  - image: harbor.daocloud.cn/daolab/daolab:nginx
    name: demo4
    ports:
    - containerPort: 80
    readinessProbe:
      httpGet:
        path: /
        port: 80
    env:
    - name: TEST
      value: "CKA"
    resources:
      limits:
        cpu: "0.5"
        memory: 0.5G
      requests:
        limits:
        cpu: "0.5"
        memory: 0.5G
  dnsPolicy: ClusterFirst
  restartPolicy: Always

cp pod1.yaml /etc/kubernetes/manifests/pod1.yaml

第五题

apiVersion: v1
kind: Pod
metadata:
  name: multiple-containers
spec:
  restartPolicy: Never
  containers:
  - name: myapp-nginx
    image: harbor.daocloud.cn/daolab/nginx

  - name: myapp-redis
    image: harbor.daocloud.cn/daolab/redis

  - name: myapp-memcached
    image: harbor.daocloud.cn/daolab/memcached

  - name: myapp-consul
    image: harbor.daocloud.cn/daolab/consul

第六题

kubectl create deploy nginx-app --image=harbor.daocloud.cn/daolab/nginx:1.10.2-alpine --dry-run=client -o yaml > deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: nginx-app
  name: nginx-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-app1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx-app1
    spec:
      containers:
      - image: harbor.daocloud.cn/daolab/nginx:10.2-alpine
        name: nginx
        resources: {}
status: {}
kubectl set image deploy nginx-app nginx=harbor.daocloud.cn/daolab/nginx:1.11.13-alpine --record
kubectl rollout history deploy nginx-app
kubectl rollout undo deploy nginx-app

第七题

kubectl create deploy ds-test1 --image=harbor.daocloud.cn/daolab/nginx --dry-run=client -o yaml > dae.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: ds-test1
  name: ds-test1
spec:
  selector:
    matchLabels:
      app: ds-test1
  template:
    metadata:
      labels:
        app: ds-test1
    spec:
      containers:
      - image: harbor.daocloud.cn/daolab/nginx
        name: nginx

第八题

apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
spec:
  parallelism: 2 # 最大并行数量
  completions: 3 # 需要完成的次数
  backoffLimit: 1 # 重试次数
  template: # 同 pod
    spec:
      containers:
        - name: job-demo
          image: busybox
          command: ["sh",  "-c", "echo 'Beijing'"]
      restartPolicy: Never

第九题

kubectl expose pod front-end  --name=front-end-service --type=NodePort --port=80 --target-port=30003
apiVersion: v1
kind: Service
metadata:
  name: front-end-service
spec:
  selector:
    app: front-end
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80

第十题

kubectl get svc -n baz
kubectl edit svc deveployment -n baz
kubectl get po -n baz -l app=nginx -l service=backend -o name > /opt/dir/kucc12345.txt

第十一题

kubectl create deployment nginx-random --image=harbor.daocloud.cn/daolab/nginx 
kubectl expose deployment nginx-random --port=80
kubectl get pods - o wide
kubectl run -it --rm dsntest --image=busybox:1.28 --restart=Never nslookup nginx-random > /opt/dir/service.dns
kubectl run -it --rm dsntest --image=busybox:1.28 --restart=Never nslookup 10.244.1.54 > /opt/dir/Pod.dns

第十二题

kubectl run non-persistent-redis --image=harbor.daocloud.cn/daolab/redis --dry-run=client -o yaml > pod3.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: non-persistent-redis
  name: non-persistent-redis
  namespace: staging
spec:
  containers:
  - image: harbor.daocloud.cn/daolab/redis
    name: non-persistent-redis
    volumeMounts:
    - name: cache-control
      mountPath: "/data/redis"
  volumes:
  - name: cache-control
    emptyDir: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always

第十三题

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-config
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/srv/app-config"

第十四题

kubectl create secret generic super-secret --from-literal credential=alice
apiVersion: v1
kind: Pod
metadata:
  name: pod-secrets-via-file
spec:
  containers:
  - name: mypod
    image: harbor.daocloud.cn/daolab/nginx
    volumeMounts:
    - name: foo
      mountPath: "/secrets"
      readOnly: true
  volumes:
  - name: foo
    secret:
      secretName: super-secret
apiVersion: v1
kind: Pod
metadata:
  name: pod-secrets-via-env
spec:
  containers:
  - name: mycontainer
    image: harbor.daocloud.cn/daolab/nginx
    env:
      - name: CONFIDENTIAL
        valueFrom:
          secretKeyRef:
            name: super-secret
            key: credential
  restartPolicy: Never

第十五题

kubectl create deploy ds-kubesc12345 --image=haibor.daocloud.cn/daolab/nginx --dry-run=client -o yaml > dae.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: ds-kubesc12345
  name: ds-kubesc12345
spec:
  selector:
    matchLabels:
      app: ds-kubesc12345
  template:
    metadata:
      labels:
        app: ds-kubesc12345
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      - key: node.kubernetes.io/unschedulable
        effect: NoSchedule
      containers:
      - image: harbor.daocloud.cn/daolab/nginx
        name: nginx

第十六题

kubectl run nginx-kucc2345 --image=haibor.daocloud.cn/daolab/nginx --dry-run=client -o yaml > pod.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx-kucc2345
  name: nginx-kucc2345
spec:
  nodeSelector:
    disk: spinning
  containers:
  - image: harbor.daocloud.cn/daolab/nginx
    name: nginx-kucc2345
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

第十七题

kubectl drain node node1 --ignore-daemonsets --delete-local-data

第十八题

kubectl logs bar | grep "No such file" > /opt/dir/bar

第十九题

kubectl get pv --sort-by=.spec.capacity.storage > /opt/dir/volume_list

第二十题

 kubectl run nginx --image=harbor.daocloud.cn/daolab/nginx -n website-frontend
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: website-frontend
spec:
  containers:
  - name: nginx
    image: harbor.daocloud.cn/daolab/nginx

第二十一题

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app_env_stage: prod
  name: kual12345
spec:
  replicas: 4
  selector:
    matchLabels:
      app_env_stage: prod
  strategy: {}
  template:
    metadata:
      labels:
        app_env_stage: prod
    spec:
      containers:
      - image: harbor.daocloud.cn/daolab/nginx
        name: kual12345
        resources: {}

第二十二题

apiVersion: v1
kind: Pod
metadata:
  name: bumpy-llama
  labels:
    app: bumpy-llama
spec:
  initContainers:
  - name: bumpy-llama-init
    image: harbor.daocloud.cn/daolab/busybox:1.28
    command:
    - /bin/sh
    - -c
    - "touch /workdir/faithful.txt"
    volumeMounts:
    - name: cache-volume
      mountPath: /workdir
  containers:
  - name: bumpy-llama
    image: harbor.daocloud.cn/daolab/busybox
    command:
    - /bin/sh
    - -c
    - "ls /workdir/faithful.txt && sleep 100000"
    volumeMounts:
    - mountPath: /workdir
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

第二十三题

apiVersion: v1
kind: Pod
metadata:
  name: kucc3
spec:
  restartPolicy: Never
  containers:
  - name: myapp-nginx
    image: harbor.daocloud.cn/daolab/nginx

  - name: myapp-redis
    image: harbor.daocloud.cn/daolab/redis

  - name: myapp-memcached
    image: harbor.daocloud.cn/daolab/memcached

  - name: myapp-consul
    image: harbor.daocloud.cn/daolab/consul

第二十四题

提供一个非完全正常运行的 Kubernetes Cluster, 在该Cluster中找出故障征兆。
确定node和出现故障的服务,采取措施修复故障服务,使 Cluster 恢复正常。确保所有更改永久有效。

提示:
可使用 ssh node-name 通过 ssh 命令连接到相应 node
可使用 sudo -i 命令在该 cluster 的任何node上获取更高权限
 kubectl get cs 能看到controller manager 没有启动 登陆到master上 找到相关服务重启 systemctl start kube-manager-controller.service 情况二 kubectl get node显示connection refuse,估计是apiserver的故障

第二十五题

查看集群状态
kubectl get nodes

查看故障节点信息
kubectl describe node node1

Message显示kubelet无法访问(记不清了)
进入故障节点
ssh node1

查看节点中的kubelet进程
ps -aux | grep kubelete

没找到kubelet进程,查看kubelet服务状态
systemctl status kubelet.service

kubelet服务没启动,启动服务并观察
systemctl start kubelet.service

启动正常,enable服务
systemctl enable kubelet.service

回到考试节点并查看状态
exit

第二十六题

通过kubeadm 安装集群
在本任务中,将配置两个新Node(一个master: ik8s-master-0 和node节点 ik8s-node-0 ) 组成一个新集群, 要求:
安装完成后, node 状态为ready
Node已经安装了docker,请自行安装kubeadm等
根据官方文档安装即可

安装kubeadm
在master 执行: kubeadm init
根据master安装后的join命令,在节点执行: kubeadm join …
安装网络
检查node 是否ready: kubectl get node

第二十七题

export ETCDCTL_API=3
etcdctl help  再etcdctl snapshot save --help
etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/ssl/etcd/ssl/ca.pem --cert=/etc/ssl/etcd/ssl/node-node1.pem --key=/etc/ssl/etcd/ssl/node-node1-key.pem snapshot save /data/backup/etcd-snapshot.db

第二十八题

kubectl top pod -l name=cpu-user

第二十九题

kubectl get nodes --show-labels | grep -vi schedule | grep -vi version | grep -i ready | wc -l

第三十题

kubectl scale --replicas=5 deployment/loadbalancer

第三十一题

kubectl run myservice --image=harbor.daocloud.cn/daolab/nginx --generator=run-pod/v1 --dry-run -o yaml > /etc/kubernetes/manifests/24.yml 
重启服务 systemctl start kubelet
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值