K8S的一些命令

1、修改k8s集群的nodeport端口范围

可以解决创建svc过程中,导致的端口号范围限制错误:

root@k8s1:~# kubectl apply -f karmada-apiserver.yaml 
The Service "karmada-apiserver-nodeport" is invalid: spec.ports[0].nodePort: Invalid value: 5443: provided port is not in the valid range. The range of valid ports is 30000-32767

修改配置文件kube-apiserver.yaml

vim /etc/kubernetes/manifests/kube-apiserver.yaml

在kube-apiserver对应的配置中添加下面一行

# 文件:/etc/kubernetes/manifests/kube-apiserver.yaml
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    # ... 其他已有参数 ...
    - --service-node-port-range=3000-32767 # 修改这一行,将起始端口改为3000

2、导出yaml并且适当修改后部署

导出某个服务的yaml文件

kubectl get svc karmada-apiserver -n karmada-system -o yaml

一般我们都会对导出的yaml文件进行适当的变更,变更后再部署到k8s中

#部署 
kubectl apply -f karmada-apiserver.yaml

3、获取某个pos的详细部署信息

kubectl get pods -n iot -o wide | grep mysql
mysql-7fdc4589c9-lx7tr   1/1     Running   0          3m58s   10.233.113.12   k8s21   <none>           <none>

4、查看某个deployment对应的pod

kubectl get pods -l app=nfs-client-provisioner

5、查看pod所属的命名空间

kubectl get pods --all-namespaces | grep ingress

6、查看持续输出

kubectl get pods -l app=redis-cluster -w -n iot
  • -l:label selector(标签选择器)的简写
  • app=redis-cluster:只选择具有标签 app: redis-cluster 的Pod
  • 这相当于过滤,只显示我们部署的Redis集群相关的Pod

7、删除全部pvc

kubectl delete pvc -n iot --all

8、运行busybox

kubectl run dns-test --rm -it --restart=Never --image=hb.xxxx.com/library/busybox:1.37 -n iot -- sh

#测试解析redis-master的hostname
nslookup redis-master

9、重启一些服务

kubectl rollout restart daemonset calico-node -n kube-system

kubectl rollout restart deployment karmada-controller-manager -n karmada-system