Kubernetes-เตฝ เดฎเตเดเตเดฐเตเดธเตผเดตเตเดธเตเดเตพ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดเตเดเดณเตเดเต เดเตเดเตเดคเดฒเดพเดฏเดฟ เดเตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผ, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดตเตเดฏเดพเดเตเดฏเดพเดจเดฟเดเตเด เดญเดพเดทเดเตพ, เด
เดตเดฐเตเดเต เดชเตเดฐเดฟเดฏเดชเตเดชเตเดเตเด IDE-เดฏเดฟเดฒเต เดเตเดกเต เดตเตเดเดคเตเดคเดฟเตฝ เดถเดฐเดฟเดฏเดพเดเตเดเดพเดจเตเด เดฌเดฟเตฝเดกเต/เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเดพเดคเต เดซเดฒเด เดเดพเดฃเดพเดจเตเด เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต - F5 เด
เดฎเตผเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต. เดเดฐเต เดฎเตเดฃเตเดฒเดฟเดคเตเดคเดฟเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดเดพเดฐเตเดฏเด เดตเดฐเตเดฎเตเดชเตเตพ, เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดเดฐเต เดตเตเดฌเต เดธเตเตผเดตเดฑเตเด (เดกเตเดเตเดเดฑเดฟเตฝ, เดตเตเตผเดเตเดตเตฝเดฌเตเดเตเดธเดฟเตฝ...) เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดพเตฝ เดฎเดคเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดเดเตป เดคเดจเตเดจเต เดตเดฟเดเดธเดจเด เดเดธเตเดตเดฆเดฟเดเตเดเต. เดฎเตเดฃเตเดฒเดฟเดคเตเดคเตเดเตพ เดฎเตเดเตเดฐเตเดธเตผเดตเตเดธเตเดเดณเดพเดเตเดเดฟ เดฎเตเดฑเดฟเดเตเดเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเดฑเต เดตเดฐเดตเตเดเต, เดชเดฐเดธเตเดชเดฐเด เดเดถเตเดฐเดฟเดคเดคเตเดตเด เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดจเตเดจเดคเตเดเต, เดเดฒเตเดฒเดพเด
เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเดฎเดฏเดเตเดเดณเดฟเตฝ เดเดเตเดเตพ เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เดชเดฐเตเดเตเดทเดฟเดเตเดเต. เดเตเดฎเดฟเดเตเดเตเดเตเดเดฟเดฏ เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ "เดเตเดฐเดเตเดเตเดเตพ" เดเดชเดฏเตเดเดฟเดเตเดเต เดเดพเตป เดเดฐเดเดญเดฟเดเตเดเตเด.
1. เดเดจเตเดจเตเดตเดเดฟเดเตพ
เดฎเดฟเดเตเด IDE-เดเตพเดเตเดเตเด FTP/SFTP เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเตผเดตเดฑเดฟเตฝ เดจเตเดฐเดฟเดเตเดเต เดเตเดกเต เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเตเดฃเตเดเต. เด เดชเดพเดค เดตเดณเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เดเดเตเดเตพ เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต. เด เดคเดฟเดจเตเดฑเต เดธเดพเดฐเดพเดเดถเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดเตเดฐเตเดเตเดเตเดจเตเดจเต:
- เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเดณเตเดเต เดชเตเดกเดฟเตฝ (dev/review), SSH เดเดเตโเดธเดธเต เดเดณเตเดณ เดเดฐเต เด เดงเดฟเด เดเดฃเตเดเตเดฏเตโเดจเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เดกเตเดตเดฒเดชเตเดชเดฑเตเดเต เดชเตเดคเต SSH เดเต เดซเตเตผเดตเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
- init เดเดเตเดเดคเตเดคเดฟเตฝ (เดเดฃเตเดเตเดฏเตเดจเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ
prepare-app
) เดเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดเตเดกเต เดเตเดฎเดพเดฑเตเดemptyDir
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด SSH เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเตเดกเดฟเดฒเตเดเตเดเต เดเดเตโเดธเดธเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต.
เด
เดคเตเดคเดฐเดฎเตเดฐเต เดธเตเดเตเดฎเดฟเดจเตเดฑเต เดธเดพเดเตเดเตเดคเดฟเด เดจเดฟเตผเดตเตเดตเดนเดฃเด เดจเดจเตเดจเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ YAML เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเดณเตเดเต เดถเดเดฒเดเตเดเตพ เดเดพเตป เดจเตฝเดเตเด.
เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ
1.1 เดฎเตเดฒเตเดฏเดเตเดเตพ.yaml
ssh_pub_key:
vasya.pupkin: <ssh public key in base64>
เดเดคเต vasya.pupkin
เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเดฎเดพเดฃเต ${GITLAB_USER_LOGIN}
.
1.2 deployment.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 เดฐเดนเดธเตเดฏเด.yaml
{{ 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
Voila: เดตเดฟเดจเตเดฏเดพเดธเด เดเดฐเดเดญเดฟเดเตเด เดกเดตเดฒเดชเตเดชเตผเดเตเดเต เดธเตเดตเดจ เดจเดพเดฎเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเดจเดพเดเตเด (เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดเดเตเดเดจเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดเดเตเดธเดธเต เด
เดจเตเดตเดฆเดฟเดเตเดเดพเด,
เดเดคเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดฏ เดเดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดจเดเดชเตเดชเดพเดเตเดเตฝ เดตเตเดเตเดทเดฃเดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดคเดฟเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดฆเตเดทเดเตเดเดณเตเดฃเตเดเต:
- เดญเดพเดตเดฟเดฏเดฟเตฝ เดตเดพเดฏเดฟเดเตเดเดพเตป เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเตเดณเตเดณ เดนเตเตฝเด เดเดพเตผเดเตเดเต เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค;
- เดธเตเดตเดจเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเด เดตเตเดฏเดเตเดคเดฟเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเต;
- เดเตเดกเตเดฎเดพเดฏเดฟ เดฒเตเดเตเดเตฝ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เด เดคเต Git-เดฒเตเดเตเดเต เดธเดฎเตผเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเตพ เดเตผเดฎเตเดฎเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
2. เดเตเดฒเดฟเดชเตเดฐเดธเตปเดธเต
เดชเดฆเตเดงเดคเดฟ
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, เดเดฒเตเดฒเดพเด เด
เดคเตเดฐ เดญเดฏเดพเดจเดเดฎเดฒเตเดฒเตเดจเตเดจเต เดคเตเดณเดฟเดเตเดเต. เดกเตเดตเดฒเดชเตเดชเดฑเตเดเต เดญเดพเดเดคเตเดคเตเดจเดฟเดจเตเดจเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดฃเตเด เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดเดเตเดเตพ เดนเตเตฝเด เดเดพเตผเดเตเดเต เดเตเดเตเดธเตเดฑเตเดฑเต เดซเดฏเดฒเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเต NOTES.txt
. เด
เดเตเดเดจเต, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดธเตเดตเดจเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด, เดกเตเดตเดฒเดชเตเดชเตผ GitLab เดเตเดฒเดฟ เดฒเตเดเดฟเตฝ เดชเตเดฐเดพเดฆเตเดถเดฟเด เดฆเตเดต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต:
!!! ะ ะฐะทัะฐะฑะพัะบะฐ ัะตัะฒะธัะฐ ะปะพะบะฐะปัะฝะพ, ะฒ ัะพััะฐะฒะต 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
#########################################################################
เด เดจเดฟเตผเดฆเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดเตเดเดเตเดเดณเดฟเตฝ เดเดเตเดเตพ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดธเดฟเดเตเดเดฟเดฒเตเดฒ ... เด เดตเดธเดพเดจเดคเตเดคเตเดคเต เดเดดเดฟเดเต. เดเตเดฒเดฟเดชเตเดฐเดธเตปเดธเต เดฒเตเดเตเดเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดเดจเตเดคเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเต?
เดเตเดฒเดฟเดชเตเดฐเดธเตปเดธเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต
เดเดฐเดเดญเดคเตเดคเดฟเตฝ (เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเดณเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เด เดตเดธเดพเดจ เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต), เดเดเตเดเตพ เดธเดเตเดเดฎเดพเดเตเดเตเดจเตเดจเต:
- เดฎเตเดเตเดฐเตเดธเตผเดตเตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดจเตเดฏเดฟเดเดธเตเดชเตเดธเต;
- เดเดเตเดเตพ เดคเตเดณเดเตเดเตเดเดฏเดฑเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดจเตเดฑเตเดฏเตเด เดชเตเดฐเตเดเตพ.
เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดเดชเตเดทเดฃเตฝ เดเดฃเต. เดเดเตเดเดณเตเดเต เดธเตเดตเดจเด Kubernetes API-เดฏเตเดฎเดพเดฏเดฟ เดธเดเดตเดฆเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ --mount=true
(เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ --mount=/dst_path
), เดเดคเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเดณเตเดเต เดกเตเดธเตโเดเตโเดเตเดชเตเดชเดฟเดฒเตเดเตเดเต เดฑเตเดเตเดเต (/) เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเด. เดเดคเดฟเดจเตเดถเตเดทเด, เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ "เดเตเดเตพ" เดจเดฎเตเดเตเดเต (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 เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดทเตป เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเด) - เดกเตเดเตเดเตผ เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดกเตเดธเตเดเตเดเตเดชเตเดชเดฟเตฝ เดจเดฟเตผเดคเตเดคเตเด, เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเดฒเตเดฒเดพเด เด เดคเดฟเดจเตเดฑเต เดชเตเดฐเดพเดฐเดเดญ เดจเดฟเดฒเดฏเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเตเด. เดชเตเดฐเดคเดฟเดเตเดเดพเดฌเดฆเตเดงเดค, เดเดเดเตผ เดเดทเตเดฏเต เดเตเดฏเตเดฏเตเด, เด เดตเดฒเตเดเดจเด/เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเด/... (เดจเดฟเดเตเดเดณเตเดเต เดตเตผเดเตเดเตเดซเตเดฒเตเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเต)
เดเดฐเต เดกเตเดเตเดเตผ เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฑเตบ เดเตเดฏเตเดฏเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ - เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดเตเดเตพ PHP-เดฏเดฟเตฝ เด เดฒเตเดฒ, Go- เดฏเดฟเตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต, เดเดชเตเดชเตเดดเตเด เด เดคเต เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเต - เดเตเดฒเดฟเดชเตเดฐเดธเตเตปเดธเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด:
telepresence --namespace {{ .Values.global.env }} --swap-deployment {{ .Chart.Name }}:backend --mount=true
เด
เดชเตเดฒเดฟเดเตเดเตเดทเตป Kubernetes API เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดเต เดกเดฏเดฑเดเตโเดเดฑเดฟ (https://www.telepresence.io/howto/volumes) เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดฒเดฟเดจเดเตเดธเดฟเดจเดพเดฏเดฟ เดเดฐเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดฃเตเดเต
proot -b $TELEPRESENCE_ROOT/var/run/secrets/:/var/run/secrets bash
เดเดชเตเดทเตป เดเดฒเตเดฒเดพเดคเต เดเตเดฒเดฟเดชเตเดฐเตเดธเตเตปเดธเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด --docker-run
เดเดฒเตเดฒเดพ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด เดจเดฟเดฒเดตเดฟเดฒเต เดเตเตผเดฎเดฟเดจเดฒเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดเตเด, เด
เดคเดฟเดจเดพเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เด
เดคเดฟเตฝ เดฒเตเดเตเดเต เดเตเดฏเตเดฏเดฃเด.
NB: เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, PHP, เดตเดฟเดเดธเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดตเดฟเดตเดฟเดง op_cache, apc, เดฎเดฑเตเดฑเต เดเดเตเดธเดฟเดฒเดฑเตเดฑเตเดฑเดฑเตเดเตพ เดเดจเตเดจเดฟเดต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดเตผเดเตเดเดฃเด - เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดเตเดกเต เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเดฒเดคเตเดคเดฟเดฒเตเดเตเดเต เดจเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.
เดซเดฒเดเตเดเตพ
เด เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเดจเตเดฑเต เดตเตเดฏเดพเดชเดจเดคเตเดคเดฟเดจเต เดเดจเตเดชเดพเดคเดฟเดเดฎเดพเดฏเดฟ เดตเดณเดฐเตเดจเตเดจ เดเดฐเต เดชเตเดฐเดถเตโเดจเดฎเดพเดฃเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเตเดฎเดพเดฏเตเดณเตเดณ เดชเตเดฐเดพเดฆเตเดถเดฟเด เดตเดฟเดเดธเดจเด. เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต (เดเดเตเดเดณเตเดเต เดเตเดฒเดฏเดจเตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต) เดชเตเดฐเดธเดเตเดคเดฎเดพเดฏ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเต, เดฒเดญเตเดฏเดฎเดพเดฏ เดเดฆเตเดฏ เดฎเดพเตผเดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เด
เดต เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟ, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดคเต เดฆเตเตผเดเดเดพเดฒเดคเตเดคเตเดเตเดเต เดธเตเดตเดฏเด เดคเตเดณเดฟเดฏเดฟเดเตเดเดชเตเดชเตเดเตเดเดฟเดฒเตเดฒ. เดญเดพเดเตเดฏเดตเดถเดพเตฝ, เดเดคเต เดเดชเตเดชเตเตพ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดเดเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เด
เดคเดฟเดจเดพเตฝ เดเตเดเตเดคเตฝ เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดฎเดพเตผเดเดเตเดเตพ เดเดคเดฟเดจเดเด เดฒเตเดเดคเตเดคเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต, เดเตเดเดพเดคเต เดเตเดฒเดฟเดชเตเดฐเดธเตเตปเดธเต เด
เดตเดฏเดฟเตฝ เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดธเดฟเดฆเตเดงเดฎเดพเดฃเต (เดตเดดเดฟเดฏเดฟเตฝ, เดเดฃเตเดเต
เดชเดฟ.เดเดธเต
K8s เดจเตเดฑเตเดเตเดเตเดเดณเตเด เดคเดจเตเดคเตเดฐเดเตเดเดณเตเด เดชเดฐเดฎเตเดชเดฐเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเดฑเตเดฑเตเดณเตเดณเดต:
- ยซ
Kubernetes เดจเตเดฑเตเดเตเดเตเดเดณเตเด เดคเดจเตเดคเตเดฐเดเตเดเดณเตเด: NGINX เดชเตเดฐเดตเตเดถเดจเดคเตเดคเดฟเดฒเต เดเดทเตโเดเดพเดจเตเดธเตเดค เดชเดฟเดถเดเต เดชเตเดเตเดเตพ "; - ยซ
เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฑเดตเดฟเดเดเตเดเตพ เดนเตเตฝเด 2 เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเดฟเดจเต เดเตเดฎเดพเดฑเตเดจเตเดจเต "; - ยซ
เดเดฐเต เดตเตเดฌเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเดฒเต เดจเตเดกเต เด เดฒเตเดเตเดเตเดทเดจเตเดฏเตเด เดฒเตเดกเตเดเดณเตเดฏเตเด เดเตเดฑเดฟเดเตเดเต "; - ยซ
เดกเตเดตเดฒเดชเตเดชเต เดธเตเดฑเตเดฑเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดเตเดธเดธเต "; - ยซ
เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเดเตพเดเตเดเดพเดฏเดฟ เดฌเตเดเตเดเตเดธเตเดเตเดฐเดพเดชเตเดชเต เดตเตเดเดคเตเดคเดฟเดฒเดพเดเตเดเตเดจเตเดจเต ".
เด เดตเดฒเดเดฌเด: www.habr.com