kubernetes常见问题

1.kube-apiserver 的服务无法启动

Unable to perform initial IP allocation check: unable to refresh the service IP block: etcdserver: leader changed

stemctl status kube-apiserver
â kube-apiserver.service - Kubernetes API Server
   Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; disabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Wed 2024-01-31 16:44:49 CST; 6s ago
     Docs: https://github.com/GoogleCloudPlatform/kubernetes
  Process: 13583 ExecStart=/usr/bin/kube-apiserver $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL $KUBE_ETCD_SERVERS $KUBE_API_ADDRESS $KUBE_API_PORT $KUBELET_PORT $KUBE_ALLOW_PRIV $KUBE_SERVICE_ADDRESSES $KUBE_ADMISSION_CONTROL $KUBE_API_ARGS (code=exited, status=255)
 Main PID: 13583 (code=exited, status=255)

Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: Unit kube-apiserver.service entered failed state.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: kube-apiserver.service failed.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: kube-apiserver.service holdoff time over, scheduling restart.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: Stopped Kubernetes API Server.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: start request repeated too quickly for kube-apiserver.service
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: Failed to start Kubernetes API Server.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: Unit kube-apiserver.service entered failed state.
Jan 31 16:44:49 bigdataserver.esrichina.com systemd[1]: kube-apiserver.service failed.
[root@bigdataserver kube_yaml]# journalctl -xeu kubelet
Jan 31 16:44:57 bigdataserver.esrichina.com kubelet[3331]: I0131 16:44:57.666085    3331 kubelet_node_status.go:74] Attempting to register node 127.0.0.1
Jan 31 16:44:57 bigdataserver.esrichina.com kubelet[3331]: E0131 16:44:57.667040    3331 kubelet_node_status.go:98] Unable to register node "127.0.0.1" with API server

无法注册通过127.0.0.1:2379注册到etcd中,应该是etcd有问题

2. 查看etcd的状态

默认etcd并不监控127.0.0.1的2379端口,只监控IP:2379

解决方法:

修改/etc/etcd/etcd.conf 中的 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379",让其监控所有ip

3. 

 kubectl create -f test.yaml
Unable to connect to the server: x509: certificate signed by unknown authority

解决方法:

参考

kubectl 命令执行报错:(Unable to connect to the server: x509: certificate signed by unknown authority )_kubectl unable to connect to the server: x509: cer-CSDN博客

4. 使用kubectl create -f rc_name.yaml后,失败。

kubectl describe ReplicationController/rc_name 

报API token found for service account "default" , retry after the token is automatically created and added to the service account

可以参考解决

解决k8s创建pod报错No API token found for service account "default", retry after the token is automatically_error from server: error when creating "busybox.ya-CSDN博客

 5. nodePort 外面机器无法访问,但是从内部机器可以访问呢

解决k8s 外网无法访问nodePort问题_k8s service未获取到nodeport-CSDN博客

6. 如何获取容器的环境变量

第一种方法

kubectl describe pod mysql1-71kvd
Name:           mysql1-71kvd
Namespace:      default
Node:           bigdataserver.esrichina.com/192.168.100.138
Start Time:     Tue, 06 Feb 2024 16:40:18 +0800
Labels:         app=mysql
Status:         Running
IP:             172.17.0.7
Controllers:    ReplicationController/mysql1
Containers:
  mysql:
    Container ID:       docker://c2977ce36ac6786da60a2bde03a9441099d738c4c51445375467a905c343864f
    Image:              mysql
    Image ID:           docker-pullable://docker.io/mysql@sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
    Port:               3306/TCP
    State:              Running
      Started:          Tue, 06 Feb 2024 16:40:36 +0800
    Ready:              True
    Restart Count:      0
    Volume Mounts:      <none>
    Environment Variables:
      MYSQL_ROOT_PASSWORD:      123456


第二种方法
kubectl describe  pod/mysql1-71kvd |grep "Container ID"
    Container ID:       docker://c2977ce36ac6786da60a2bde03a9441099d738c4c51445375467a905c343864f

docker exec -it c2977ce36ac6786da60a2bde03a9441099d738c4c51445375467a905c343864f env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=mysql1-71kvd
TERM=xterm
MYSQL_ROOT_PASSWORD=123456

第三种方法
kubectl exec mysql1-71kvd -- printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=mysql1-71kvd
MYSQL_ROOT_PASSWORD=123456





 7. 如何查看pod的ip地址

1. 第一种方法
kubectl describe pod/dapi-test-pod-volume|grep IP
IP:             172.17.0.10

2. 第二种方法
exec -it dapi-test-pod-volume -- ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:0A
          inet addr:172.17.0.10  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1992 (1.9 KiB)  TX bytes:1006 (1006.0 B)


3. 第三种方法
kubectl describe pod dapi-test-pod-volume |grep "Container ID"
    Container ID:       docker://cbc442d98288f9692aa2cc12d1604c2927c0071d5862c14f0293f91d5ae9d858

docker inspect -f '{{.State.Pid}}' cbc442d98288f9692aa2cc12d1604c2927c0071d5862c14f0293f91d5ae9d858
10658

nsenter --target=10658 -n
[root@bigdataserver kube_yaml]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.10  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:acff:fe11:a  prefixlen 64  scopeid 0x20<link>
        ether 02:42:ac:11:00:0a  txqueuelen 0  (Ethernet)
        RX packets 28  bytes 2132 (2.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 1076 (1.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0





  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值