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
解决方法:
参考
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
可以参考解决
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