kubectl get pod --sort-by .metadata.name题目一般都是按名字排序
kubectl logs heapster-798fcd9949-lk9rc | grep error > xx.txt要求是把错误内容输出到某个文件中,可以粘贴,也可以直接重定向文件
命令行创建pod的方法可以参考攻略的pdf,主要参数是--restart=Never,否则就会是deploymentkubectl run nginx-pod --image=nginx --port=80 --restart=Never --dry-run -o yaml > pod.yaml
先导出一份示例yaml出来,记得保存好这份yaml,后面也要用的
在yaml的spec属性中增加 nodeName: xxx创建pod:kubectl create -f pod.yaml
kubectl get node 如何判断正常节点:一般都是not readyget或者describe node排查node信息,把可用数写到一个文件中,文件里写一个数字就行了,不要多写空格换行之类的,谨记
直接使用这个文档的示例就行,不用改啥东西 文档地址:https://kubernetes.io/docs/concepts/storage/volumes/
文档地址:https://kubernetes.io/docs/co...
apiVersion: v1kind: Podmetadata: creationTimestamp: null labels: run: nginx-pod name: nginx-podspec: containers: - image: nginx name: nginx-pod command: ['sh','-c','if [ -f "a.txt" ]; then echo xx ;fi'] ports: - containerPort: 80 resources: {} volumeMounts: - name: workdir mountPath: /usr/nginx/html dnsPolicy: ClusterFirst initContainers: - image: busybox name: initcheck command: ['sh','-c','touch /tmp/index.html'] volumeMounts: - name: workdir mountPath: /tmp volumes: - name: workdir emptyDir: {}
pod的模板使用前几题留下的yaml,改下就行了 service的nodePort类型:https://kubernetes.io/docs/concepts/services-networking/service/ 注意:校验nodePort是否通,不要在中控机上校验,登录到node去校验 也有可能让你建cluster-ip类型
apiVersion: v1kind: Podmetadata: name: demospec: containers: - image: nginx name: nginx - image: redis name: redis
按selector查找
kubectl get pod --selector="run=demo" | awk '{ print $1}' | grep -v NAME | 或者找到pod后,一个一个看kubectl top pod | grep -v NAME | sort -k 3
文档地址:https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/文档中给的yaml内容太多了,volume都可以删掉daemonset创建好后会发现pod数小于节点数,可以看下节点是不是打了taint
kubectl scale --replicas=4 deployment demo
这个文档里面全都有,记住链接https://kubernetes.io/docs/concepts/configuration/secret/
升级
kubectl set image deployments demo demo=nginx:1.11 --record
回滚
kubectl rollout undo deployment demo
service和pod的创建用之前的yaml
查看dnskubectl run -it --image busybox:1.28.4 dnstest --rm /bin/shsevice:nslookup svc-demo.kube-system.svc.cluster.localpod:nslookup 1-2-3-4.default.pod.cluster.local查看pod ip时,要把1.2.3.4换成1-2-3-4,否则会报错对应的文档:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
ETCDCTL_API=3 etcdctl --endpoints ....snapshot save xxx 根据-h提示写就行了先声明环境变量ETCDCTL_API=3 ,不然etcdctl 是v2版本这个文档:文档地址:https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/
文档地址:https://kubernetes.io/docs/tasks/administer-cluster/static-pod/找到--pod-manifest-path=/etc/kubelet.d/配置的位置,然后把pod的yaml放进去apiVersion: v1kind: Podmetadata: name: static-web labels: role: myrolespec: containers: - name: web image: nginx ports: - name: web containerPort: 80 protocol: TCP
先创建ns,在创建pod,和前面步骤类似
文档地址:https://kubernetes.io/docs/concepts/storage/persistent-volumes/
apiVersion: v1kind: Podmetadata: name: nginx labels: env: testspec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: disktype: ssd
22.排查apiserver连接不上问题:
用的kubeadmin安装的,是kubelet的配置中目录地址有问题
应该是直接drain,需要注意daemonset要强制删除,或者给节点打污点,taint,再去删掉
参考作答:https://lingxiankong.github.i...
文档地址:https://kubernetes.io/docs/re...
日期:2019年5月
版本:k8s 1.13
联系客服