现有连接被远程主机强行关闭 - Kubernetes
Existing connection was forcibly closed by the remote host - Kubernetes
我是 kubernetes 的新手,正在学习 YouTube 上关于微服务的 Les Jackson 课程。在部署 SQL 服务器后,我无法使用 Management Studio 连接到它。 (在球场上 5:30:00 左右)
这是用于部署的 yaml 代码,它与课程中使用的代码几乎相同我只是添加了一些行,因为我在容器上收到错误“crashLoopBackOff”:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-depl
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-latest
command: ["/bin/bash", "-c", "--"] #added this
args: ["while true; do sleep 30; done;"] #two lines
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Express"
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql
key: SA_PASSWORD
volumeMounts:
- mountPath: /var/opt/mssql/data
name: mssqldb
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-claim
---
apiVersion: v1
kind: Service
metadata:
name: mssql-clusterip-srv
spec:
type: ClusterIP
selector:
app: mssql
ports:
- name: mssql
protocol: TCP
port: 1433
targetPort: 1433
---
apiVersion: v1
kind: Service
metadata:
name: mssql-loadbalancer
spec:
type: LoadBalancer
selector:
app: mssql
ports:
- protocol: TCP
port: 1433
targetPort: 1433
广告连播说明:
谢谢!
好吧,在多次尝试完全重现您的情况之后,我成功了。我遇到了几个问题,我将在下面描述其解决方案。根据输入参数,我有 Windows 10 pro
、安装的 Docker desktop
和 Kubernetes v1.22.5
。还有 2 个文件 pvc.yaml
和 deployment.yaml
.
- 我们将从删除所有以前的集群和节点开始,重新开始。最后,重新启动您的系统。
# Write neme of your config files
kubectl delete -f pvc.yaml
kubectl delete -f deployment.yaml
- 之后,启动
Docker desktop
并在 Settings
选项卡中,select Kubernetes
并启动它。
- 启动 command-line 终端,导航到包含您的文件的目录,然后 运行 命令:
kubectl create -f pvc.yaml
配置的位置:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mssql-claim
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Mi
运行 下一个创建秘密的命令:
kubectl create secret generic mssql5 --from-literal=SA_PASSWORD="MyC0m9l&xPassw0rd"
运行 最后一条命令:
kubectl create -f deployment.yaml
配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-depl
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Express"
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql5
key: SA_PASSWORD
volumeMounts:
- mountPath: /var/opt/mssql/data
name: mssqldb
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-claim
---
apiVersion: v1
kind: Service
metadata:
name: mssql-clusterip-srv
spec:
type: ClusterIP
selector:
app: mssql
ports:
- name: mssql
protocol: TCP
port: 1433
targetPort: 1433
---
apiVersion: v1
kind: Service
metadata:
name: mssql-loadbalancer
spec:
type: LoadBalancer
selector:
app: mssql
ports:
- protocol: TCP
port: 1433
targetPort: 1433
- 集群和服务启动后,使用命令
kubectl get pods
, kubectl get services
检查它们。如果一切正常,您会看到下面屏幕截图的输出。
- 您可以按照 documentation 运行 命令继续检查您的秘密文件:
kubectl edit secrets mysecret
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
SA_PASSWORD: TXlDMG05bCZ4UGFzc3cwcmQ= # << ERROR
kind: Secret
metadata:
creationTimestamp: "2022-03-23T17:31:31Z"
name: mssql5
namespace: default
resourceVersion: "633"
uid: 62184a05-7641-4296-944f-4e9a149e5bb5
type: Opaque
- 我的密码与我创建的密码不同。如果您还编辑了文件并重新启动服务。之后你可以连接到你的
SQL Server
.
- 如果问题仍然存在,您可以使用
Windows Authentication
连接,然后单击 Security
> Logins
> Properties
在您的用户名上鼠标右键 > Properties
并在那里更改密码。
我是 kubernetes 的新手,正在学习 YouTube 上关于微服务的 Les Jackson 课程。在部署 SQL 服务器后,我无法使用 Management Studio 连接到它。 (在球场上 5:30:00 左右)
这是用于部署的 yaml 代码,它与课程中使用的代码几乎相同我只是添加了一些行,因为我在容器上收到错误“crashLoopBackOff”:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-depl
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-latest
command: ["/bin/bash", "-c", "--"] #added this
args: ["while true; do sleep 30; done;"] #two lines
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Express"
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql
key: SA_PASSWORD
volumeMounts:
- mountPath: /var/opt/mssql/data
name: mssqldb
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-claim
---
apiVersion: v1
kind: Service
metadata:
name: mssql-clusterip-srv
spec:
type: ClusterIP
selector:
app: mssql
ports:
- name: mssql
protocol: TCP
port: 1433
targetPort: 1433
---
apiVersion: v1
kind: Service
metadata:
name: mssql-loadbalancer
spec:
type: LoadBalancer
selector:
app: mssql
ports:
- protocol: TCP
port: 1433
targetPort: 1433
广告连播说明:
谢谢!
好吧,在多次尝试完全重现您的情况之后,我成功了。我遇到了几个问题,我将在下面描述其解决方案。根据输入参数,我有 Windows 10 pro
、安装的 Docker desktop
和 Kubernetes v1.22.5
。还有 2 个文件 pvc.yaml
和 deployment.yaml
.
- 我们将从删除所有以前的集群和节点开始,重新开始。最后,重新启动您的系统。
# Write neme of your config files
kubectl delete -f pvc.yaml
kubectl delete -f deployment.yaml
- 之后,启动
Docker desktop
并在Settings
选项卡中,selectKubernetes
并启动它。 - 启动 command-line 终端,导航到包含您的文件的目录,然后 运行 命令:
kubectl create -f pvc.yaml
配置的位置:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mssql-claim
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Mi
运行 下一个创建秘密的命令:
kubectl create secret generic mssql5 --from-literal=SA_PASSWORD="MyC0m9l&xPassw0rd"
运行 最后一条命令:
kubectl create -f deployment.yaml
配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-depl
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Express"
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql5
key: SA_PASSWORD
volumeMounts:
- mountPath: /var/opt/mssql/data
name: mssqldb
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-claim
---
apiVersion: v1
kind: Service
metadata:
name: mssql-clusterip-srv
spec:
type: ClusterIP
selector:
app: mssql
ports:
- name: mssql
protocol: TCP
port: 1433
targetPort: 1433
---
apiVersion: v1
kind: Service
metadata:
name: mssql-loadbalancer
spec:
type: LoadBalancer
selector:
app: mssql
ports:
- protocol: TCP
port: 1433
targetPort: 1433
- 集群和服务启动后,使用命令
kubectl get pods
,kubectl get services
检查它们。如果一切正常,您会看到下面屏幕截图的输出。
- 您可以按照 documentation 运行 命令继续检查您的秘密文件:
kubectl edit secrets mysecret
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
SA_PASSWORD: TXlDMG05bCZ4UGFzc3cwcmQ= # << ERROR
kind: Secret
metadata:
creationTimestamp: "2022-03-23T17:31:31Z"
name: mssql5
namespace: default
resourceVersion: "633"
uid: 62184a05-7641-4296-944f-4e9a149e5bb5
type: Opaque
- 我的密码与我创建的密码不同。如果您还编辑了文件并重新启动服务。之后你可以连接到你的
SQL Server
. - 如果问题仍然存在,您可以使用
Windows Authentication
连接,然后单击Security
>Logins
>Properties
在您的用户名上鼠标右键 >Properties
并在那里更改密码。