2022年2月

kubectl 常见命令

官方 kubectl 参考在这里: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

有关 Cluster 的

kubectl cluster-info
kubectl top pod
kubectl top node 
kubectl certificate
kubectl cordon
kubectl uncordon
kubectl drain
kubectl taint

有关 troubleshooting

kubectl describe # 比 get 得到更多信息
kubectl logs
kubectl attach 
kubectl exec
kubectl port-forward
kubectl proxy
kubectl cp
kubectl auth can-i list deployments --all-namespaces

有关 api-resource

kubectl api-resources //列出所有 resource 类型
kubectl explain pods
kubectl explain pod.spec
kubectl explain pod.spec.containers.securityContext
kubectl get pod -n myns --cluster clusterName
kubectl get pod -n myns --context clusterName

create resource

# kubectl apply 用于创建或更新资源,适合持续部署和配置管理。
# kubectl create 仅用于创建新资源,如果资源已经存在,命令将失败。
tess kubectl create -f FILENAME [options]
tess kubectl apply (-f FILENAME | -k DIRECTORY) [options]

Java 语言中的 assert 关键字

我们读有些 Java 代码的时候, 通常会遇到使用 assert 关键字的代码, 比如:
assert Thread.holdsLock(this);
那么这个 assert 在这里有什么用呢? 我们要不要使用它呢?

assert 是 JDK 1.4 引入的, 它通常有下面 2 种使用方式:
assert 以 boolen 值为结果的表达式;

assert 以 boolen 值为结果的表达式 : "某个字符串, 告诉为什么出错了";

默认情况下, 即便你们代码里写了 assert 关键字的代码, 它们也不会被执行. 通过下面 2 个启动参数, 我们可以控制是不是需要执行 assert 的代码:
-enableassertions-ea
-disableassertions-da

语法:

java [ -enableassertions | -ea  ] [:<package name>"..." | :<class name> ]

官方文档: https://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html