我运行此命令来创建我的 Pod:
kubectl run my-ngnix --image nginx
Run Code Online (Sandbox Code Playgroud)
现在,我尝试使用以下命令删除 pod/部署:
kubectl delete deployment my-nginx
Run Code Online (Sandbox Code Playgroud)
问题是我的终端告诉我这是不可能的。因为找不到正确的信息。
Error from server (NotFound): deployments.apps "my-nginx" not found
Run Code Online (Sandbox Code Playgroud)
如果要求全部,这就是我所看到的:
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/my-ngnix 1/1 Running 0 27m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 159m
root@aharo003:~# kubectl stop pods,services -l pod/m-ngnix
Run Code Online (Sandbox Code Playgroud)
有人知道我还应该做什么吗?
kubectl get -n istio-system secret istio-ca -ogo-template='{{index .data "tls.crt"}}' | base64 -d > ca.pem
Run Code Online (Sandbox Code Playgroud)
如何在 ansible playbook 中运行上述命令?
我尝试按如下方式使用它:
- name: Apply secret istio-ca
shell: kubectl get -n istio-system secret istio-ca -ogo-template='{{index .data "tls.crt"}}' | base64 -d > ca.pem
register: sout
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误,如下所示:
fatal: [172.31.20.135]: FAILED! => {"msg": "template error while templating string: expected token 'end of print statement', got 'string'. String: kubectl get -n istio-system secret istio-ca -ogo-template='{{index .data \"tls.crt\"}}' | base64 -d > ca.pem"}
Run Code Online (Sandbox Code Playgroud) 我想从 kubernetes 上可用的 pod 列表中提取 pod 名称。例如,对于以下命令
kubectl get pods -n 命名空间
NAME READY STATUS RESTARTS AGE
pod1 1/1 Running 2 46d
pod2 1/1 Running 0 46d
test-pod3-yy 0/1 ImagePullBackOff 0 338d
test-pod3-xx 1/1 Running 0 255d
Run Code Online (Sandbox Code Playgroud)
test-pod3-xx我想使用 shell 脚本提取 pod 。目前这是我正在使用的命令
POD_NAME=$(kubectl get pods -n namespace | grep testpod-3 | cut -d' ' -f1)
Run Code Online (Sandbox Code Playgroud)
这样我就得到了两个 Pod test-pod3-yy,test-pod3-xx但我想提取处于运行状态的 Pod。我怎样才能做到这一点?
我正在尝试使用 Kubernetes 和 minikube 部署应用程序。但我有一个奇怪的问题:我可以在终端中使用curl 访问我的应用程序,但不能从浏览器访问我的应用程序。我正在使用“minikubetunnel”命令作为外部IP。
这是我的部署和服务文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodeapp-deployment
labels:
app: nodeapp
spec:
replicas: 1
selector:
matchLabels:
app: nodeapp
template:
metadata:
labels:
app: nodeapp
spec:
containers:
- name: nodeserver
image: tanyadovzhenko/chi-questionnaire-back
env:
- name: PORT
value: "4000"
- name: JWT_ACCESS_KEY
value: "111"
- name: JWT_REFRESH_KEY
value: "111"
- name: HASH_PASSWORD_ALGORITM
value: "sha256"
ports:
- containerPort: 4000Run Code Online (Sandbox Code Playgroud)
apiVersion: v1
kind: Service
metadata:
name: nodeapp-service
spec:
selector:
app: nodeapp
type: LoadBalancer
ports:
- protocol: TCP
port: 4000 …Run Code Online (Sandbox Code Playgroud)使用 kubectl 时找不到状态 jsonpath。pod json 有一个状态字段,但它是一个数组。
kubectl get pods --column=Status:.status[*]
Run Code Online (Sandbox Code Playgroud)
数组中有多个元素,如何选择一个来反映真实 Pod 状态?
我正在尝试执行与此等效的操作:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:${reg_port}"
EOF
Run Code Online (Sandbox Code Playgroud)
在戈兰。
我目前的尝试归结为:
func generateConfig(port string) string {
return `
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:" + port`
}
func main() {
exec.Command("kubectl", "apply", "-f", "-", generateConfig(5000))
}
Run Code Online (Sandbox Code Playgroud)
我并不特别惊讶地发现它不起作用,并出现错误:
error: Unexpected args: [
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:5000"]
Run Code Online (Sandbox Code Playgroud)
我认识到我将这些作为参数传递,并且 kubectl 需要一个文件,但是我发现自己完全不知道如何继续。
我宁愿不创建临时文件或调用单独的 bash 脚本,因为这看起来比我希望的更混乱。
我执行了这个命令: $ kubectl get services -n demo1
它返回了此服务列表
服务清单
请告诉我如何删除该服务
service kubernetes google-kubernetes-engine kubectl minikube
kubectl ×7
kubernetes ×6
minikube ×2
shell ×2
ansible ×1
azure ×1
azure-devops ×1
bash ×1
deployment ×1
go ×1
grep ×1
jsonpath ×1
service ×1
terminal ×1