小编Abd*_*ani的帖子

Kubernetes:hostPort 和 hostIp 有何用途?

我尝试了解 Kubernetes 中的 hostIP 和 hostPort。

这是我的集群配置:

3个流浪节点:

nodes = [
  { :hostname => 'k8s-master', :ip => '192.168.150.200', :ram => 4096 },
  { :hostname => 'k8s-minion1', :ip => '192.168.150.201', :ram => 4096 },
  { :hostname => 'k8s-minion2', :ip => '192.168.150.202', :ram => 4096 },
]
Run Code Online (Sandbox Code Playgroud)

我编写以下清单来测试它:

apiVersion: v1
kind: Pod
metadata:
  name: firstpod
spec:
  containers:
  - name: container
    image: nginx
    ports:
    - containerPort: 80
      hostIP: 10.0.0.1
      hostPort: 8080
Run Code Online (Sandbox Code Playgroud)

我部署的是kubectl apply -f port.yml pod 在 k8s-minion2 上运行

kubectl get pods …
Run Code Online (Sandbox Code Playgroud)

port cluster-computing kubernetes kubernetes-pod

7
推荐指数
2
解决办法
4万
查看次数

kubernetes securitycontext runAsNonRoot 不工作

我正在使用 securityContext 进行测试,但是当我将 runAsNonRoot 设置为 true 时,我无法启动 pod。\n我使用 vagrant 以用户 abdelghani 的身份将一个 master 和两个 minion 以及 ssh 部署到主机:

\n
id $USER\nuid=1001(abdelghani) gid=1001(abdelghani) groups=1001(abdelghani),27(sudo)\n
Run Code Online (Sandbox Code Playgroud)\n

集群信息:

\n

Kubernetes 版本:4.4.0-185-generic\n使用云:(不在公有云则裸机)\n安装方式:手动\n主机操作系统:ubuntu16.04.6\nCNI 及版本:\nCRI 及版本:

\n
apiVersion: v1\nkind: Pod\nmetadata:\n  name: buggypod\nspec:\n  containers:\n  - name: container\n    image: nginx\n    securityContext:        \n      runAsNonRoot: true\n
Run Code Online (Sandbox Code Playgroud)\n

我这样做:\nkubectl apply -f pod.yml\nit 说 pod mybugypod 创建了,但是当我检查时:\nkubectl get pods\npod\xe2\x80\x99s 状态是 CreateContainerConfigError

\n

我做错了什么?

\n

security kubernetes

5
推荐指数
1
解决办法
1万
查看次数

kubernetes:如何从附加的 pod 中分离

我有一个跑步舱,我用来kubectl attach -ti mypod给他输入。

但是,我想从我的 Pod 中“分离”并返回到我的终端而不终止我的 Pod。我怎样才能做到这一点?

stdin kubernetes

5
推荐指数
1
解决办法
4678
查看次数

使用 kubectl 检查容器

有没有办法直接从 kubernetes 命令行(使用 kubectl)检查在 pod 中运行的容器,以查看一些细节,例如在特权模式下运行。就像是:

kubectl inspect -c <containerName>
Run Code Online (Sandbox Code Playgroud)

我发现的唯一方法是通过 ssh 连接到托管 pod 的节点并执行,docker inspect <containerID>但这有点乏味。

我的 kubernetes 版本

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:55:54Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0+coreos.0", GitCommit:"6bb2e725fc2876cd94b3900fc57a1c98ca87a08b", GitTreeState:"clean", BuildDate:"2018-04-02T16:49:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)

containers kubernetes kubectl

2
推荐指数
1
解决办法
1870
查看次数

Kubernetes:如何使用补丁更改服务端口

设以下服务:

serivce1.yml
apiVersion: v1
kind: Service
metadata:
  name: service1
spec:
  type: ClusterIP
  ports:
   - port: 90
     name: port0
     targetPort: 40000
  selector:
    app: nginx
Run Code Online (Sandbox Code Playgroud)

我申请如下:kubectl apply -f service1.yml

现在我想更改端口部分。我可以编辑 yml 并再次应用,但我更喜欢使用 patch :

kubectl patch service service1 -p '{"spec":{"ports": [{"port": 80,"name":"anotherportspec"}]}}'
service/service1 patched
Run Code Online (Sandbox Code Playgroud)

但此命令添加一个新端口并保留旧端口:

$ kubectl describe svc service1
Name:              service1
Namespace:         abdelghani
Labels:            <none>
Annotations:       <none>
Selector:          app=nginx
Type:              ClusterIP
IP Families:       <none>
IP:                10.98.186.21
IPs:               <none>
Port:              anotherportspec  80/TCP
TargetPort:        80/TCP
Endpoints:         10.39.0.3:80
Port:              port0  90/TCP
TargetPort:        40000/TCP
Endpoints: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

1
推荐指数
1
解决办法
5382
查看次数