kubectl get pod run-sh-1816639685-xejyk
NAME READY STATUS RESTARTS AGE
run-sh-1816639685-xejyk 2/2 Running 0 26m
Run Code Online (Sandbox Code Playgroud)
"READY = 2/2"是什么意思?与"1/1"相同?
我使用microk8s的ubuntu
我正在尝试运行一个简单的 hello world 程序,但在pod创建时出现错误。
kubelet 没有配置 ClusterDNS IP,无法使用“ClusterFirst”策略创建 Pod。回退到“默认”政策
这是我正在尝试应用的deployment.yaml文件。
apiVersion: v1
kind: Service
metadata:
name: grpc-hello
spec:
ports:
- port: 80
targetPort: 9000
protocol: TCP
name: http
selector:
app: grpc-hello
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: grpc-hello
spec:
replicas: 1
selector:
matchLabels:
app: grpc-hello
template:
metadata:
labels:
app: grpc-hello
spec:
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1
args: [
"--http2_port=9000",
"--backend=grpc://127.0.0.1:50051",
"--service=hellogrpc.endpoints.octa-test-123.cloud.goog",
"--rollout_strategy=managed",
]
ports:
- containerPort: 9000
- …Run Code Online (Sandbox Code Playgroud) Kubernetes 管理员可以使用--cluster-domain自定义集群域,而不是使用默认域:cluster.local Kubelet Configs。
那么问题来了,应用 pod 如何在运行时检查这个域?
按照本教程,我为集群设置了一个工作节点。但是,运行join命令并尝试kubectl get node验证节点是否已连接后,我遇到了以下错误
W0215 17:58:44.648813 3084402 loader.go:223] Config not found: /etc/kubernetes/admin.conf
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Run Code Online (Sandbox Code Playgroud)
admin.conf检查in是否存在/etc/kubernetes/表明它不存在。我已经确保这一点$HOME/.kube/config也很清楚。为什么 join 命令没有创建 admin.conf 文件?
我的两个集群节点有时会Kubelet stopped posting node status进入。kubectl describe node在该节点的日志中我看到:
Dec 11 12:01:03 alma-kube1 kubelet[946]: E1211 06:01:03.166998 946 controller.go:115] failed to ensure node lease exists, will retry in 6.4s, error: Get https://192.168.151.52:6443/apis/coordination.k8s.io/v1beta1/namespaces/kube-node-lease/leases/alma-kube1?timeout=10s: read tcp 192.168.170.7:46824->192.168.151.52:6443: use of closed network connection
Dec 11 12:01:03 alma-kube1 kubelet[946]: W1211 06:01:03.167045 946 reflector.go:289] object-"kube-public"/"myregistrykey": watch of *v1.Secret ended with: very short watch: object-"kube-public"/"myregistrykey": Unexpected watch close - watch lasted less than a second and no items received
Dec 11 12:01:03 alma-kube1 kubelet[946]: W1211 …Run Code Online (Sandbox Code Playgroud) 这在我们的 K8 集群中是一种奇怪的行为。
当我们尝试部署新版本的应用程序时,我们会得到:
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "<container-id>" network for pod "application-6647b7cbdb-4tp2v": networkPlugin cni failed to set up pod "application-6647b7cbdb-4tp2v_default" network: Get "https://[10.233.0.1]:443/api/v1/namespaces/default": dial tcp 10.233.0.1:443: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
我使用kubectl get cs并发现controller并scheduler处于Unhealthy状态。
正如这里的描述更新/etc/kubernetes/manifests/kube-scheduler.yaml并
/etc/kubernetes/manifests/kube-controller-manager.yaml通过评论--port=0
当我检查systemctl status kubelet它正在工作时。
Active: active (running) since Mon 2020-10-26 13:18:46 +0530; 1 years 0 months …Run Code Online (Sandbox Code Playgroud) 自从 GKE 升级到 1.21.10-gke.2000 以来,我每隔 5 分钟左右就会在 konnectivity-agent 日志中看到这些错误。我无法发现这些问题的任何后果,但我也无法让它们消失。有谁知道问题是什么以及我如何让它消失?
pod_name: "konnectivity-agent-779eadf84d-98kjh"
"conn write failure" err="write tcp 10.48.0.2:40528->10.48.0.8:10250: use of closed network connection" connectionID=215
"connection read failure" err="read tcp 10.48.0.2:40528->10.48.0.8:10250: use of closed network connection"
Run Code Online (Sandbox Code Playgroud) 我将 aws EKS 与托管节点组一起使用。在过去的几周里,我曾两次遇到其中一个节点中的 Kubelet 崩溃或停止向控制平面报告的情况。
\n在这种情况下,我希望自动缩放组将该节点识别为不健康节点,并将其替换。然而,事实并非如此。我通过创建节点并手动停止 Kubelet 重新创建了该问题,请参见下图:
\n\n我的第一个想法是创建一个事件总线警报,该警报将触发 lambda 来处理此问题,但我在事件总线的服务列表中找不到 EKS 服务,因此 \xe2\x80\xa6
\n有谁知道可以帮助解决此问题的工具或配置吗?\n为了明确起见,我正在寻找能够:
\n谢谢!!
\nI have Container Linux by CoreOS alpha (1325.1.0) Installed on a pc at home.
I played with kubernetes for a couple of month, but now after reinstalling ContainerOS and trying to install kubernetes using my fork at https://github.com/kfirufk/coreos-kubernetes I fail to properly install kubernetes.
I use hyperkube image v1.6.0-beta.0_coreos.0.
the problem is that it seems that hyperkube doesn't try to initiate any manifests from /etc/kubernetes/manifests. I configured kubelet to run with rkt.
when I run journalctl -xef -u …
仅启用出口网络策略时,Pod 重新启动后所有就绪性和活动性检查都会失败。
这是我在描述 pod 时看到的:
警告不健康 115s (x7 超过 2m55s) kubelet,就绪探测失败:获取http://10.202.158.105:80/health/ready : dial tcp 10.202.158.105:80: connect: 连接被拒绝 警告不健康 115s (x7 超过 2m55s) kubelet ,活性探测失败:获取http://10.202.158.105:80/health/live:拨打tcp 10.202.158.105:80:连接:连接被拒绝
如果我禁用这些策略,运行状况检查将立即恢复运行。如果 Pod 在应用网络策略之前已经正常运行,它将继续工作。
我还尝试使用此策略将每个名称空间列入白名单:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-ingress-all
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector: {}
ports:
- protocol: TCP
port: 80
- protocol: TCP
port: 8080
Run Code Online (Sandbox Code Playgroud)
我很难找到有关如何解决此问题的任何指导。是否需要启用出口策略才能允许 kubelet 监控 Pod 运行状况检查?
该 Pod 在 Azure Kubernetes 服务内部运行并使用 Calico 网络。
kubelet ×10
kubernetes ×9
kubectl ×3
amazon-eks ×1
autoscaling ×1
calico ×1
cni ×1
containeros ×1
coreos ×1
firewall ×1
kubeadm ×1
microk8s ×1
rkt ×1