后浪笔记一零二四

  1. k8s service name的命名规范: ‘a-z?’ && len <= 63 service name遵循DNS标签的命名规范(RFC 1123):
  • contain at most 63 characters
  • contain only lowercase alphanumeric characters or ‘-’
  • start with an alphanumeric character
  • end with an alphanumeric character
  1. 如何配置kubectl命令提示: echo “source <(kubectl completion bash)” » ~/.bashrc

  2. 获取kubeadm的–discovery-token-ca-cert-hash值。

1
2
3
4
5
6
7
# 默认token的有效期为24小时,24小时后,需要重新生成
$ kubeadm token list
$ kubeadm token create

$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

$ kubeadm join --token susbs6.jdmyyvzj22ginli2 --discovery-token-ca-cert-hash sha256:fc488fb29210f8fbc4fcad92afdd4535386a95d6eab25b6355a217c245d51579 192.168.1.144:6443
  1. 查询某个命名空间下所有的资源
1
2
kubectl api-resources --verbs=list --namespaced -o name \
  | xargs -n 1 kubectl get --show-kind --ignore-not-found -l <label>=<value> -n <namespace>
  1. 创建一个ImagePullSecret,以支持私有的Docker仓库
1
2
3
kubectl create secret docker-registry myregistrykey --docker-server=DUMMY_SERVER \
          --docker-username=DUMMY_USERNAME --docker-password=DUMMY_DOCKER_PASSWORD \
          --docker-email=DUMMY_DOCKER_EMAIL

将镜像拉取添加到服务账号(pod的默认服务账号是default)

1
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'
  1. requests和limits 在调度的时候requests比较重要,在运行时limits比较重要
  • limits会向cgroup设置值,但是requests并不会
  • limits告诉Linux内核什么时候你的进程可以为了清理空间而被杀死
  • requests帮助Kubernetes调度找到合适的节点运行Pod a) 假设你没有配置内存requests来运行Pod,而配置了一个较高的limits。正如我们所知道的Kubernetes默认会把requests的值指向limits,如果没有合适的资源的节点的话,Pod可能会调度失败,即使它实际需要的资源并没有那么多。 b) 另一方面,如果你运行了一个配置了较低requests值的Pod,你其实是在鼓励内核oom-kill掉它。为什么?假设你的Pod通常使用100MiB内存,你却只为它配置了50MiB内存requests。如果你有一个拥有75MiB内存空间的节点,那么这个Pod会被调度到这个节点。当Pod内存消耗扩大到100MiB时,会让这个节点压力变大,这个时候内核可能会选择杀掉你的进程。
  • 如果没有设置requests和limits会怎样? a) 没有任何资源限制,有多少用多少,这样的pod,在节点资源不足的情况下是最先被驱逐的。 b) 可以给namespace设置requests和limits
  1. k8s为何需要contrack

https://git.netfilter.org/conntrack-tools/

https://www.netfilter.org/projects/conntrack-tools/downloads.html

  1. 解决谷歌浏览器无法访问k8s Dashboard的问题

在谷歌浏览器启动文件中加入启动参数--test-type --ignore-certificate-errors

mac chrome中如何操作:

1
2
3
4
5
6
7
8
$ cd cd "/Applications/Google Chrome.app/Contents/MacOS/"
$ sudo mv "Google Chrome" Google.real
$ cat > "Google Chrome" <<-EOF
#!/bin/bash
cd "/Applications/Google Chrome.app/Contents/MacOS"
"/Applications/Google Chrome.app/Contents/MacOS/Google.real" --args --test-type --ignore-certificate-errors
EOF
$ sudo chmod u+x "Google Chrome"
  1. k8s,为何只有 service和node,包含EXTERNAL-IP字段呢?

本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image