เช
เชฎเชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธเชฟเชธ เชตเชฟเชเชธเชพเชตเชตเชพ เชตเชฟเชถเซ เชตเชงเซเชจเซ เชตเชงเซ เชชเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช, เชเชพเชธ เชเชฐเซเชจเซ เช
เชฐเซเชฅเชเชเชจ เชเชฐเชพเชฏเซเชฒ เชญเชพเชทเชพเชเชจเชพ, เชคเซเชฎเชจเชพ เชฎเชจเชชเชธเชเชฆ IDE เชฎเชพเช เชเซเชกเชจเซ เชเชกเชชเชฅเซ เชธเซเชงเชพเชฐเชตเชพ เช
เชจเซ เชฌเชฟเชฒเซเชก/เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเชจเซ เชฐเชพเชน เชเซเชฏเชพ เชตเชฟเชจเชพ เชชเชฐเชฟเชฃเชพเชฎ เชเซเชตเชพ เชฎเชพเชเชเซ เชเซ - เชซเชเซเชค F5 เชฆเชฌเชพเชตเซเชจเซ. เช
เชจเซ เชเซเชฏเชพเชฐเซ เชฎเซเชจเซเชฒเชฟเชฅเชฟเช เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชตเชพเชค เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชกเซเชเชพเชฌเซเช เช
เชจเซ เชตเซเชฌ เชธเชฐเซเชตเชฐเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซเช เชนเชคเซเช (เชกเซเชเชฐ, เชตเชฐเซเชเซเชฏเซเช
เชฒเชฌเซเชเซเชธเชฎเชพเช...), เช
เชจเซ เชชเชเซ เชคเชฐเชค เช เชตเชฟเชเชพเชธเชจเซ เชเชจเชเชฆ เชฎเชพเชฃเซ. เชฎเซเชจเซเชฒเชฟเชฅเซเชธเชจเซ เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธเชฟเชธเชฎเชพเช เชเชพเชชเชตเชพ เช
เชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชจเชพ เชเชเชฎเชจ เชธเชพเชฅเซ, เชเชเชฌเซเชเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเชพ เชฆเซเชเชพเชต เชธเชพเชฅเซ, เชฌเชงเซเช
เชเซเชฆเชพ เชเซเชฆเชพ เชธเชฎเชฏเซ เช เชฎเซ เชธเชฎเชธเซเชฏเชพเชจเชพ เชตเชฟเชตเชฟเชง เชเชเซเชฒเซ เช เชเชฎเชพเชตเซเชฏเชพ. เช เชจเซ เชนเซเช เชธเชเชเชฟเชค เชตเชฐเซเชเช เชฐเชพเชเชจเซเชกเซเชธ เช เชฅเชตเชพ เชซเชเซเชค "เชเซเชฐเช" เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเชถ.
1. เชเซเชฐเซเช
เชฎเซเชเชพเชญเชพเชเชจเชพ IDEs เชชเชพเชธเซ FTP/SFTP เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเซเชงเชพ เชธเชฐเซเชตเชฐ เชชเชฐ เชเซเชกเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชนเซเชฏ เชเซ. เช เชฐเชธเซเชคเซ เชเซเชฌ เช เชธเซเชชเชทเซเช เชเซ เช เชจเซ เช เชฎเซ เชคเชฐเชค เช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช. เชคเซเชจเซ เชธเชพเชฐ เชจเซเชเซ เชฎเซเชเชฌ เชเชเชณเซ เชเซ:
- เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเชเซเชธ (เชฆเซเชต/เชธเชฎเซเชเซเชทเชพ)เชจเชพ เชชเซเชกเชฎเชพเช SSH เชเชเซเชธเซเชธ เชธเชพเชฅเซ เชเช เชตเชงเชพเชฐเชพเชจเซเช เชเชจเซเชเซเชจเชฐ เชฒเซเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชกเซเชตเชฒเชชเชฐเชจเซ เชธเชพเชฐเซเชตเชเชจเชฟเช SSH เชเซเชจเซ เชซเซเชฐเชตเชฐเซเชก เชเชฐเซ เชเซ เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเชฎเชฟเช/เชกเชฟเชชเซเชฒเซเชฏ เชเชฐเชถเซ.
- เชชเซเชฐเชพเชฐเชเชญเชฟเช เชคเชฌเชเซเชเซ (เชเชจเซเชเซเชจเชฐเชจเซ เช
เชเชฆเชฐ
prepare-app
) เชชเชฐ เชเซเชก เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเซemptyDir
เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชจเซเชเซเชจเชฐ เช เชจเซ SSH เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชเซเชกเชจเซ เชเชเซเชธเซเชธ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ.
เชเชตเซ เชฏเซเชเชจเชพเชจเชพ เชคเชเชจเซเชเซ เช
เชฎเชฒเซเชเชฐเชฃเชจเซ เชตเชงเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ, เชนเซเช เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชธเชพเชฎเซเชฒ YAML เชฐเซเชชเชฐเซเชเชพเชเชเชจเซเชจเชพ เชเซเชเชกเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชถ.
เชเซเชจเซเชซเซเชเซเชฏเซเชฐเชพเชธเซ
1.1. values.yaml
ssh_pub_key:
vasya.pupkin: <ssh public key in base64>
เชคเซ vasya.pupkin
เชเชฒเชจเซ เชเชฟเชเชฎเชค เชเซ ${GITLAB_USER_LOGIN}
.
1.2. เชเชฎเชพเชตเช.yaml
...
{{ if eq .Values.global.debug "yes" }}
volumes:
- name: ssh-pub-key
secret:
defaultMode: 0600
secretName: {{ .Chart.Name }}-ssh-pub-key
- name: app-data
emptyDir: {}
initContainers:
- name: prepare-app
{{ tuple "backend" . | include "werf_container_image" | indent 8 }}
volumeMounts:
- name: app-data
mountPath: /app-data
command: ["bash", "-c", "cp -ar /app/* /app-data/" ]
{{ end }}
containers:
{{ if eq .Values.global.debug "yes" }}
- name: ssh
image: corbinu/ssh-server
volumeMounts:
- name: ssh-pub-key
readOnly: true
mountPath: /root/.ssh/authorized_keys
subPath: authorized_keys
- name: app-data
mountPath: /app
ports:
- name: ssh
containerPort: 22
protocol: TCP
{{ end }}
- name: backend
volumeMounts:
{{ if eq .Values.global.debug "yes" }}
- name: app-data
mountPath: /app
{{ end }}
command: ["/usr/sbin/php-fpm7.2", "--fpm-config", "/etc/php/7.2/php-fpm.conf", "-F"]
...
1.3. เชเซเชชเซเชค.เชฏเชพเชฎเชฒ
{{ if eq .Values.global.debug "yes" }}
apiVersion: v1
kind: Secret
metadata:
name: {{ .Chart.Name }}-ssh-pub-key
type: Opaque
data:
authorized_keys: "{{ first (pluck .Values.global.username .Values.ssh_pub_key) }}"
{{ end }}
เช เชเชคเชฟเชฎ เชธเซเชชเชฐเซเชถ
เชคเซ เชชเชเซ เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเชตเชพเชจเซเช เชเซ
dev:
stage: deploy
script:
- type multiwerf && source <(multiwerf use 1.0 beta)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- werf deploy
--namespace ${CI_PROJECT_NAME}-stage
--set "global.env=stage"
--set "global.git_rev=${CI_COMMIT_SHA}"
--set "global.debug=yes"
--set "global.username=${GITLAB_USER_LOGIN}"
tags:
- build
เชตเซเชเชฒเชพ: เชกเซเชตเชฒเชชเชฐ เชเซเชฃเซ เชเชฎเชพเชตเช เชถเชฐเซ เชเชฐเซ เชเซ เชคเซ เชธเซเชตเชพเชจเชพ เชจเชพเชฎเชฅเซ เชเชจเซเชเซเช เชฅเช เชถเชเซ เชเซ (เชเซเชฒเชธเซเชเชฐเชจเซ เชธเซเชฐเชเซเชทเชฟเชค เชฐเซเชคเซ เชเชเซเชธเซเชธ เชเซเชตเซ เชฐเซเชคเซ เชเชชเชตเซ,
เช เชเช เชธเชเชชเซเชฐเซเชฃ เชเชพเชฐเซเชฏเชเชพเชฐเซ เชเชเซเชฒ เชเซ, เชชเชฐเชเชคเซ เช เชฎเชฒเซเชเชฐเชฃเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ เชคเซเชจเชพ เชธเซเชชเชทเซเช เชเซเชฐเชซเชพเชฏเชฆเชพ เชเซ:
- เชนเซเชฒเซเชฎ เชเชพเชฐเซเชเชจเซ เชฐเชฟเชซเชพเชเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชค, เชเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชตเชพเชเชเชตเชพเชจเซเช เชฎเซเชถเซเชเซเชฒ เชฌเชจเชพเชตเซ เชเซ;
- เชซเชเซเชค เชคเซ เช เชตเซเชฏเชเซเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ เชเซเชฃเซ เชธเซเชตเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซ;
- เชคเชฎเชพเชฐเซ เชฏเชพเชฆ เชฐเชพเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชชเชเซ เชคเซเชจเซ เชเซเชก เชธเชพเชฅเซ เชธเซเชฅเชพเชจเชฟเช เชกเชฟเชฐเซเชเซเชเชฐเซ เชธเชพเชฅเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเซ เช เชจเซ เชคเซเชจเซ เชเชฟเชเชฎเชพเช เชฎเซเชเชฒเซ.
2. เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ
เช เชชเซเชฐเซเชเซเชเซเช
เชเซเชเชเชฎเชพเช, เชฌเชงเซเช เชเชเชฒเซเช เชกเชฐเชพเชฎเชฃเซ เชจ เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช. เช
เชฎเซ เชเชตเซ เชฌเชงเซ เชเซเชฐเชฟเชฏเชพเช เชฎเซเชเซ เชเซ เชเซ เชเซเชจเซ เชกเซเชตเชฒเชชเชฐเชจเชพ เชญเชพเช เชชเชฐ เชเชเซเชเชฟเชเซเชฏเซเชถเชจเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชเซ เชเซเชจเซ เชนเซเชฒเซเชฎ เชเชพเชฐเซเช เชเซเชเซเชธเซเช เชซเชพเชเชฒ เชเชนเซเชตเชพเชฏ เชเซ. NOTES.txt
. เชเชฎ, เชเซเชฌเชฐเชจเซเชเซเชธ เชชเชฐ เชธเซเชตเชพ เชเชฎเชพเชตเซเชฏเชพ เชชเชเซ, เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชเชฟเชเชฒเซเชฌ เชเซเชฌ เชฒเซเชเชฎเชพเช เชธเซเชฅเชพเชจเชฟเช เชกเซเชต เชเชจเซเชตเชพเชฐเซเชฏเชฎเซเชจเซเช เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชธเซเชเชจเชพเช เชเซเช เชเซ:
!!! ะ ะฐะทัะฐะฑะพัะบะฐ ัะตัะฒะธัะฐ ะปะพะบะฐะปัะฝะพ, ะฒ ัะพััะฐะฒะต Kubernetes !!!
* ะะฐัััะพะนะบะฐ ะพะบััะถะตะฝะธั
* * ะะพะปะถะตะฝ ะฑััั ะดะพัััะฟ ะดะพ ะบะปะฐััะตัะฐ ัะตัะตะท VPN
* * ะะฐ ะปะพะบะฐะปัะฝะพะผ ะะ ัััะฐะฝะพะฒะปะตะฝ kubectl ( https://kubernetes.io/docs/tasks/tools/install-kubectl/ )
* * ะะพะปััะธัั config-ัะฐะนะป ะดะปั kubectl (ัะบะพะฟะธัะพะฒะฐัั ะฒ ~/.kube/config)
* * ะะฐ ะปะพะบะฐะปัะฝะพะผ ะะ ัััะฐะฝะพะฒะปะตะฝ telepresence ( https://www.telepresence.io/reference/install )
* * ะะพะปะถะตะฝ ะฑััั ัััะฐะฝะพะฒะปะตะฝ Docker
* * ะะตะพะฑั
ะพะดะธะผ ะดะพัััะฟ ััะพะฒะฝั reporter ะธะปะธ ะฒััะต ะบ ัะตะฟะพะทะธัะพัะธั https://gitlab.site.com/group/app
* * ะะตะพะฑั
ะพะดะธะผะพ ะทะฐะปะพะณะธะฝะธััั ะฒ registry ั ะปะพะณะธะฝะพะผ/ะฟะฐัะพะปะตะผ ะพั GitLab (ะดะตะปะฐะตััั ะพะดะธะฝ ัะฐะท):
#########################################################################
docker login registry.site.com
#########################################################################
* ะะฐะฟััะบ ะพะบััะถะตะฝะธั
#########################################################################
telepresence --namespace {{ .Values.global.env }} --swap-deployment {{ .Chart.Name }}:backend --mount=/tmp/app --docker-run -v `pwd`:/app -v /tmp/app/var/run/secrets:/var/run/secrets -ti registry.site.com/group/app/backend:v8
#########################################################################
เช เชฎเซ เช เชธเซเชเชจเชพเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชชเชเชฒเชพเช เชชเชฐ เชตเชฟเชเชคเชตเชพเชฐ เชงเซเชฏเชพเชจ เชเชชเซเชถเซเช เชจเชนเซเช... เชเซเชฒเซเชฒเชพ เชเชเชจเซ เชฌเชพเชฆ เชเชฐเชคเชพเช. Telepresence เชจเชพ เชฒเซเชจเซเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชถเซเช เชฅเชพเชฏ เชเซ?
Telepresence เชธเชพเชฅเซ เชเชพเชฎ
เชธเซเชเชพเชฐเซเชเช เชช เชชเชฐ (เชเชชเชฐเชจเซ เชธเซเชเชจเชพเชเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเซเชฒเซเชฒเชพ เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ), เช เชฎเซ เชธเซเช เชเชฐเซเช เชเซเช:
- เชจเซเชฎเชธเซเชชเซเชธ เชเซ เชเซเชฎเชพเช เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธ เชเชพเชฒเซ เชฐเชนเซ เชเซ;
- เชเชฎเชพเชตเช เช เชจเซ เชเชจเซเชเซเชจเชฐเชจเชพ เชจเชพเชฎเซ เชเซ เช เชฎเซ เชชเซเชฐเชตเซเชถเชตเชพ เชฎเชพเชเชเซเช เชเซเช.
เชฌเชพเชเซเชจเซ เชฆเชฒเซเชฒเซ เชตเซเชเชฒเซเชชเชฟเช เชเซ. เชเซ เช
เชฎเชพเชฐเซ เชธเซเชตเชพ Kubernetes API เชธเชพเชฅเซ เช
เชจเซ เชคเซเชจเชพ เชฎเชพเชเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ --mount=true
(เช
เชฅเชตเชพ --mount=/dst_path
), เชเซ เชฐเซเช (/) เชจเซ Kubernetes เชเชจเซเชเซเชจเชฐเชฎเชพเชเชฅเซ เช
เชฎเชพเชฐเชพ เชกเซเชธเซเชเชเซเชช เชชเชฐ เชฎเชพเชเชจเซเช เชเชฐเชถเซ. เช เชชเชเซ, เช
เชฎเซ (OS เช
เชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซเชตเซ เชฐเซเชคเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ) เชเซเชฒเชธเซเชเชฐเชฎเชพเชเชฅเซ "เชเซ" เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช.
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซเชจเชพ เชธเซเชฅเซ เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช เชตเชฟเชเชฒเซเชช เชเซเชเช - เชกเซเชเชฐ เชเชจเซเชเซเชจเชฐเชฎเชพเช. เช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช --docker-run
เช
เชจเซ เชเซเชก เชธเชพเชฅเซเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชฎเชพเชเชจเซเช เชเชฐเซ: -v `pwd`:/app
เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เช เชชเซเชฐเซเชเซเชเซเช เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชเชพเชฒเชคเซเช เชนเซเชตเชพเชจเซเช เชงเชพเชฐเซ เชเซ. เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซเชก เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชฎเชพเชเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ /app
เชเช เชเชจเซเชเซเชจเชฐ เชฎเชพเช.
เชเชเชฒเซเช: -v /tmp/app/var/run/secrets:/var/run/secrets
โ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ/เชเซเชเชจ เชธเชพเชฅเซเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชฎเชพเชเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเซ.
เช เชตเชฟเชเชฒเซเชช เชเซเชฒเซเชฒเซ เช เชเชฎเซเช เชฆเซเชตเชพเชฐเชพ เช
เชจเซเชธเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชพเชฒเชถเซ. NB: เชเชฌเซ เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เชธเซเชชเชทเซเช เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ CMD
เช
เชฅเชตเชพ ENTRYPOINT
!
เชเชเชณ เชฌเชฐเชพเชฌเชฐ เชถเซเช เชฅเชถเซ?
- เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช, เชเชฒเซเชฒเซเชเชฟเชค เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชฎเชพเชเซ, เชชเซเชฐเชคเชฟเชเซเชคเชฟเชเชจเซ เชธเชเชเซเชฏเชพ เชฌเชฆเชฒเซเชจเซ 0 เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชเช เชจเชตเซ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ - เชเช เช
เชตเซเชเซ เชเชจเซเชเซเชจเชฐ เชธเชพเชฅเซ
backend
. - เชกเซเชธเซเชเชเซเชช เชชเชฐ 2 เชเชจเซเชเซเชจเชฐ เชฒเซเชจเซเช เชฅเชถเซ: เชชเซเชฐเชฅเชฎ เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ เชธเชพเชฅเซ (เชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชคเชฐเชซเชฅเซ/เชจเซ เชชเซเชฐเซเชเซเชธเซ เชตเชฟเชจเชเชคเซ เชเชฐเชถเซ), เชฌเซเชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชกเซเชตเชฒเชช เชฅเช เชฐเชนเซ เชเซ.
- เชเซ เช เชฎเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเชพเชฅเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเซเช เชเซเช, เชคเซ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชนเซเชฒเซเชฎ เชฆเซเชตเชพเชฐเชพ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชคเชฎเชพเชฎ ENV เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธ เช เชฎเชจเซ เชเชชเชฒเชฌเซเชง เชฅเชถเซ, เช เชจเซ เชฌเชงเซ เชธเซเชตเชพเช เชชเชฃ เชเชชเชฒเชฌเซเชง เชฐเชนเซเชถเซ. เชคเชฎเชพเชฐเชพ เชฎเชจเชชเชธเชเชฆ IDE เชฎเชพเช เชเซเชกเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพ เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชเชจเชเชฆ เชฒเซเชตเชพเชจเซเช เชฌเชพเชเซ เชเซ.
- เชเชพเชฎเชจเชพ เช เชเชคเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชคเซ เชเชฐเซเชฎเชฟเชจเชฒ เชฌเชเชง เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฎเชพเช เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ (Ctrl+C เชธเชพเชฅเซ เชธเชคเซเชฐ เชธเชฎเชพเชชเซเชค เชเชฐเซ) - เชกเซเชเชฐ เชเชจเซเชเซเชจเชฐ เชกเซเชธเซเชเชเซเชช เชชเชฐ เชฌเชเชง เชฅเช เชเชถเซ, เช เชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชฌเชงเซเช เชคเซเชจเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชชเชพเชเซเช เชเชตเชถเซ. เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชเชฎเชฟเช เชเชฐเชตเชพเชจเซเช เชเซ, MR เชเชพเชฐเซ เชเชฐเซ เช เชจเซ เชคเซเชจเซ เชธเชฎเซเชเซเชทเชพ/เชฎเชฐเซเช/... (เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเชซเซเชฒเซ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซเชจเซ) เชชเชฐ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเซ.
เชเซ เชเชชเชฃเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชกเซเชเชฐ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชเชฒเชพเชตเชตเชพ เชฎเชพเชเชเชคเชพ เชจ เชนเซเชเช - เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเซ PHP เชฎเชพเช เชจเชนเซเช, เชชเชฐเชเชคเซ เชเซเชฎเชพเช เชตเชฟเชเชพเชธ เชเชฐเซเช เชเซเช, เช เชจเซ เชคเซเชฎ เชเชคเชพเช เชคเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชฌเชจเชพเชตเซเช เชเซเช - เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ เชฒเซเชจเซเช เชเชฐเชตเชพเชจเซเช เชตเชงเซ เชธเชฐเชณ เชนเชถเซ:
telepresence --namespace {{ .Values.global.env }} --swap-deployment {{ .Chart.Name }}:backend --mount=true
เชเซ เชเชชเซเชฒเชฟเชเซเชถเชจ Kubernetes API เชจเซ เชเชเซเชธเซเชธ เชเชฐเซ เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชเซ เชกเชพเชฏเชฐเซเชเซเชเชฐเซ เชฎเชพเชเชจเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ (https://www.telepresence.io/howto/volumes). Linux เชฎเชพเชเซ เชเช เชเชชเชฏเซเชเชฟเชคเชพ เชเซ
proot -b $TELEPRESENCE_ROOT/var/run/secrets/:/var/run/secrets bash
เชตเชฟเชเชฒเซเชช เชตเชเชฐ เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ เชฒเซเชจเซเช เชเชฐเซเชฏเชพ เชชเชเซ --docker-run
เชคเชฎเชพเชฎ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ เชตเชฐเซเชคเชฎเชพเชจ เชเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช เชเชชเชฒเชฌเซเชง เชนเชถเซ, เชคเซเชฅเซ เชคเซเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชถเชฐเซ เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ.
NB: เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, PHP, เชคเชฎเชพเชฐเซ เชตเชฟเชเชพเชธ เชฎเชพเชเซ เชตเชฟเชตเชฟเชง op_cache, apc เช เชจเซ เช เชจเซเชฏ เชเชเซเชธเชฟเชฒเชฐเซเชเชฐเซเชธเชจเซ เช เชเซเชทเชฎ เชเชฐเชตเชพเชจเซเช เชฏเชพเชฆ เชฐเชพเชเชตเซเช เชเซเชเช - เช เชจเซเชฏเชฅเชพ เชเซเชกเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพเชฅเซ เชเชเซเชเชฟเชค เชชเชฐเชฟเชฃเชพเชฎ เชฎเชณเชถเซ เชจเชนเซเช.
เชชเชฐเชฟเชฃเชพเชฎเซ
Kubernetes เชธเชพเชฅเซ เชธเซเชฅเชพเชจเชฟเช เชตเชฟเชเชพเชธ เช เชเช เชธเชฎเชธเซเชฏเชพ เชเซ เชเซเชจเซ เชเชเซเชฒ เช เชชเซเชฒเซเชเชซเซเชฐเซเชฎเชจเซ เช
เชชเชจเชพเชตเชตเชพเชจเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชตเชงเซ เชฐเชนเซเชฏเซ เชเซ. เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช (เช
เชฎเชพเชฐเชพ เชเซเชฐเชพเชนเชเซ เชชเชพเชธเซเชฅเซ) เชธเชเชฌเชเชงเชฟเชค เชตเชฟเชจเชเชคเซเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซเชจเซ, เช
เชฎเซ เชคเซเชฎเชจเซ เชชเซเชฐเชฅเชฎ เชเชชเชฒเชฌเซเชง เชฎเชพเชงเซเชฏเชฎเซเชฅเซ เชนเชฒ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช, เชเซ, เชเซเชเซ, เชฒเชพเชเชฌเชพ เช
เชเชคเชฐ เชชเชฐ เชชเซเชคเชพเชจเซ เชธเชพเชฌเชฟเชค เชเชฐเซ เชถเชเซเชฏเซเช เชจเชนเซเช. เชธเชฆเชญเชพเชเซเชฏเซ, เช เชซเชเซเชค เชนเชตเซ เช เชจเชนเซเช เช
เชจเซ เชซเชเซเชค เชเชชเชฃเชพ เชฎเชพเชเซ เช เชธเซเชชเชทเซเช เชฅเช เชเชฏเซเช เชเซ, เชคเซเชฅเซ เชตเชงเซ เชฏเซเชเซเชฏ เชฎเชพเชงเซเชฏเชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เชตเชฟเชถเซเชตเชฎเชพเช เชฆเซเชเชพเชฏเชพ เชเซ, เช
เชจเซ เชเซเชฒเชฟเชชเซเชฐเซเชเชจเซเชธ เชคเซเชฎเชพเชเชฅเซ เชธเซเชฅเซ เชชเซเชฐเชเซเชฏเชพเชค เชเซ (เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชคเซเชฏเชพเช เชชเชฃ เชเซ.
PS
K8s เชเซเชชเซเชธ เช เชจเซ เชฏเซเชเซเชคเชฟเช เชถเซเชฐเซเชฃเซเชฎเชพเชเชฅเซ เช เชจเซเชฏ:
- ยซ
เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชชเซเชธ เช เชจเซ เชฏเซเชเซเชคเชฟเช: NGINX เชชเซเชฐเชตเซเชถเชฎเชพเช เชเชธเซเชเชฎ เชญเซเชฒ เชชเซเชทเซเช เซ ยป; - ยซ
เชนเซเชฒเซเชฎ 2 เชฎเซเชจเซเชเชฎเซเชจเซเชเชฎเชพเช เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชเชพเชฒเชคเชพ เชธเชเชธเชพเชงเชจเซเชจเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเซเช ยป; - ยซ
เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเชฐ เชจเซเชก เชซเชพเชณเชตเชฃเซ เช เชจเซ เชฒเซเชก เชตเชฟเชถเซ ยป; - ยซ
เชกเซเชต เชธเชพเชเชเซเชธเชจเซ เชเชเซเชธเซเชธ ยป; - ยซ
เชฎเซเชเชพ เชกเซเชเชพเชฌเซเชธเซเชธ เชฎเชพเชเซ เชฌเซเชเชธเซเชเซเชฐเซเชชเชจเซ เชเชกเชชเซ เชฌเชจเชพเชตเชตเซเช ยป.
เชธเซเชฐเซเชธ: www.habr.com