私はkubernetesクラスタ内で実行するために長寿命のジャンプを作成しています。ホームフォルダ用のEBSボリュームを使用し、コードの重要なコピーを保持し、日常的な動作に素早くアクセスできます。問題は、GNU screen
を使用して同様に長寿命のセッションを作成できないことです。gnu画面を実行できるkubernetesでポッドを作成する
は、ここに私のDockerfileです:
FROM ubuntu:zesty
ENV KUBECTL_VERSION=v1.7.6
RUN apt-get update && \
apt-get install -y \
htop vim sysstat \
build-essential make \
ruby ruby-dev rake \
postgresql-client libpq-dev \
curl wget \
python python-pip && \
pip install awscli && \
gem install --no-rdoc --no-ri bundler
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl && \
chmod a+x kubectl && \
mv kubectl /usr/local/bin/kubectl
ADD dotfiles /root-dotfiles
ADD code /root-code
ADD docker-entrypoint.sh /docker-entrypoint.sh
そして、ここで私はそれを展開方法は次のとおりです。
[email protected]:~# screen -S asdf
Cannot open your terminal '' - please check.
:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: doit
purpse: jumpbox
name: doit
namespace: default
spec:
replicas: 1
revisionHistoryLimit: 2
selector:
matchLabels:
app: doit
purpose: jumpbox
template:
metadata:
labels:
app: doit
purpose: jumpbox
spec:
containers:
- image: 123.dkr.ecr.eu-central-1.amazonaws.com/doit:latest
imagePullPolicy: Always
name: doit
command: ["sleep", "infinity"]
workingDir: /root
env:
- name: TERM
value: xterm
volumeMounts:
- mountPath: /root
subPath: root-homedir
name: doit-home
volumes:
- name: doit-home
persistentVolumeClaim:
claimName: doit-home
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 1
をしかし、私の容器に内kubectl exec
とは、画面作成をしようとすると、私はこれを回避することで対処できます:
[email protected]:~# script /dev/null
Script started, file is /dev/null
# bash
[email protected]:~# screen -S asdf
# now inside of the screen
はまた、ここで私はポッドへの接続方法は次のとおりです。
function doit {
doit_pods=$(kubectl get pods -l 'app==doit' -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
kubectl exec -it $doit_pods bash
}
だから私はkubectl exec -it
をやっているボンネットの下。
しかし、私はこのジャンプボックスインスタンスのすべてのユーザーがスクリプトを実行してbashに戻って欲しいとは思わない。 screen
に正しく設定されているPodを作成するにはどうすればよいですか?
あなたは 'kubectl exec -it'を使っていますか? – IanAuld