20 Dec 2021
cka注意事项
- 设置kubectl
source <(kubectl completion bash) # setup autocomplete in bash into the current shell, bash-completion package should be installed first.
echo "source <(kubectl completion bash)" >> ~/.bashrc # add autocomplete permanently to your bash shel
alias k=kubectl
complete -F __start_kubectl k
export do="--dry-run=client -o yaml" # k get pod x $do
export now="--force --grace-period 0" # k delete pod x $now
- 每个考题切记切换到正确的cluster
kubectl config use-context target-cluster
-
手动调度的pod切记使用k replace –force -f pod.yaml
-
遇到不会的题目,直接在官方文档中搜索关键字,一般会有相应例子
-
能直接参考官方例子的,直接copy官方例子,不要自己写
-
在相应的obj文档页面直接查询kubectl create直接使用命令行创建相应obj
-
常用知识点直接设置成书签,一键直达
-
在官方文档搜索时,结果有可能并不是在 https://kubernetes.io/docs/ 和 https://kubernetes.io/blog/ 子域下,不能在考试中点开
-
考试中需要登录到节点操作,但是需要创建的答案文件不能在集群节点上,记得退出后再创建相应的文件
-
关于升级和备份的考题直接参考官方kubeadm文档,命令太多记不住
-
注意考题中资源的ns,不要把obj创建在错误的ns
-
killer模拟考试全部过一遍
-
考题中答案切记不要把kubectl写成k
-
登录节点修改服务配置文件,记得执行以下命令
systemctl daemon-reload && systemctl restart kubelet
systemctl status kubelet
- 所有namespace级别的obj
k api-resources --namespaced -o name
- 常用的kubectl选项
-o name
--no-headers
-o wide
-
静态pod相关知识点,创建的目录、后缀等
-
登录节点操作docker的命令是crictl,语法和docker一样的
-
节点上网络插件配置目录位于/etc/cni/net.d
-
看清题目答案是需要提供命令行还是命令行结果,提供命令行的文件一般是xxx.sh
-
常用kubectl命令,请参考官方kubectl cheat sheet页面
-
快速创建资源的命令,参考kubectl help和官方kubectl cheat sheet页面
kubectl run --help | grep "kubectl run"
kubectl run nginx --image=nginx
kubectl run hazelcast --image=hazelcast/hazelcast --port=5701
kubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"
kubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"
kubectl run nginx --image=nginx --dry-run=client
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'
kubectl run -i -t busybox --image=busybox --restart=Never
kubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN>
kubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]
kubectl create deployment nginx --image=nginx # start a single instance of nginx
# create a Job which prints "Hello World"
kubectl create job hello --image=busybox -- echo "Hello World"
# create a CronJob that prints "Hello World" every minute
kubectl create cronjob hello --image=busybox --schedule="*/1 * * * *" -- echo "Hello World"
-
不会或者需要消耗太多的时间题目标记后,后面有时间在做
-
通过cat创建文件
cat << EOF > test.log
line1
line2
EOF
- 通过cat创建文件直接apply
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox
args:
- sleep
- "1000000"
---
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: $(echo -n "s33msi4" | base64 -w0)
username: $(echo -n "jane" | base64 -w0)
EOF
:) 未完待续……
LEo
at 00:12