เจธเจพเจจเฉเฉฐ Kubernetes เจตเจฟเฉฑเจ เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ เจตเจฟเจเจธเจฟเจค เจเจฐเจจ เจฌเจพเจฐเฉ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจชเฉเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจกเจฟเจตเฉเจฒเจชเจฐ, เจเจพเจธ เจเจฐเจเฉ เจฆเฉเจญเจพเจธเจผเฉเจ เจญเจพเจธเจผเจพเจตเจพเจ เจฆเฉ, เจเจชเจฃเฉ เจชเจธเฉฐเจฆเฉเจฆเจพ 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 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 secret.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
เจตเฉเจเจฒเจพ: เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจฒเจพเจเจ เจเจฐเจจ เจตเจพเจฒเจพ เจกเจฟเจตเฉเจฒเจชเจฐ เจธเฉเจตเจพ เจจเจพเจฎ เจจเจพเจฒ เจเฉเฉ เจธเจเจฆเจพ เจนเฉ (เจเจฒเฉฑเจธเจเจฐ เจคเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจคเจฐเฉเจเฉ เจจเจพเจฒ เจชเจนเฉเฉฐเจ เจเจฟเจตเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจพเจตเฉ,
เจเจน เจเฉฑเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเจพ เจนเฉฑเจฒ เจนเฉ, เจชเจฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจเจธเจฆเฉ เจธเจชเฉฑเจธเจผเจ เจจเฉเจเจธเจพเจจ เจนเจจ:
- เจนเฉเจฒเจฎ เจเจพเจฐเจ เจจเฉเฉฐ เจธเฉเจงเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค, เจเฉ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจชเฉเฉเจนเจจเจพ เจฎเฉเจธเจผเจเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ;
- เจธเจฟเจฐเจซเจผ เจเจธ เจตเจฟเจ เจเจคเฉ เจฆเฉเจเจฐเจพ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเจฟเจธเจจเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเฉเจคเจพ เจนเฉ;
- เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจก เจฆเฉ เจจเจพเจฒ เจธเจฅเจพเจจเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเฉ เจจเจพเจฒ เจธเจฎเจเจพเจฒเฉ เจเจฐเจจ เจฒเจ เจฏเจพเจฆ เจฐเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจฟเฉฑเจ เจจเจพเจฒ เจธเจฎเจฐเจชเจฟเจค เจเจฐเฉเฅค
2. เจเฉเจฒเฉเจชเฉเจฐเฉเจเจผเฉเจเจธ
เจชเฉเจฐเฉเจเฉเจเจ
เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ, เจธเจญ เจเฉเจ เจเฉฐเจจเจพ เจกเจฐเจพเจเจฃเจพ เจจเจนเฉเจ เจธเฉ. เจ
เจธเฉเจ เจเจน เจธเจพเจฐเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจฐเฉฑเจเฉเจเจ เจเจฟเจจเฉเจนเจพเจ เจฒเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจฆเฉ เจนเจฟเฉฑเจธเฉ 'เจคเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจนเฉเจฒเจฎ เจเจพเจฐเจ เจเฉเจเจธเจ เจซเจพเจเจฒ เจตเจฟเฉฑเจ NOTES.txt
. เจเจธ เจคเจฐเฉเจนเจพเจ, เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจธเฉเจตเจพ เจคเฉเจจเจพเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ, เจกเจฟเจตเฉเจฒเจชเจฐ GitLab เจเฉเจฌ เจฒเฉเจ เจตเจฟเฉฑเจ เจธเจฅเจพเจจเจ dev เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจฆเฉเจเจฆเจพ เจนเฉ:
!!! ะ ะฐะทัะฐะฑะพัะบะฐ ัะตัะฒะธัะฐ ะปะพะบะฐะปัะฝะพ, ะฒ ัะพััะฐะฒะต 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 เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ
เจธเจผเฉเจฐเฉเจเจค 'เจคเฉ (เจเจชเจฐเฉเจเจค เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจตเจฟเฉฑเจ เจฆเฉฑเจธเฉ เจเจ เจเจเจฐเฉ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ), เจ เจธเฉเจ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเจพเจ:
- เจจเฉเจฎเจธเจชเฉเจธ เจเจฟเจธ เจตเจฟเฉฑเจ เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธ เจเฉฑเจฒ เจฐเจนเฉ เจนเฉ;
- เจคเฉเจจเจพเจคเฉ เจ เจคเฉ เจเฉฐเจเฉเจจเจฐ เจฆเฉ เจจเจพเจฎ เจเฉ เจ เจธเฉเจ เจชเฉเจฐเจตเฉเจธเจผ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจเฅค
เจฌเจพเจเฉ เจฆเจฒเฉเจฒเจพเจ เจตเจฟเจเจฒเจชเจฟเจ เจนเจจเฅค เจเฉเจเจฐ เจธเจพเจกเฉ เจธเฉเจตเจพ เจเฉเจฌเจฐเจจเฉเจเจธ 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 เจจเจพเจฒ เจธเจฎเจพเจชเจค เจเจฐเฉ) - เจกเฉเจเจฐ เจเฉฐเจเฉเจจเจฐ เจกเฉเจธเจเจเฉเจช 'เจคเฉ เจฐเฉเจ เจเจพเจฃเจเฉ, เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจธเจญ เจเฉเจ เจเจชเจฃเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจ เจเจพเจตเฉเจเจพเฅค เจเฉ เจเฉเจ เจฌเจเจฟเจ เจนเฉ เจเจน เจนเฉ เจชเฉเจฐเจคเฉเจฌเฉฑเจง เจเจฐเจจเจพ, MR เจเจพเจฐเฉ เจเจฐเจจเจพ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจธเจฎเฉเจเจฟเจ/เจ เจญเฉเจฆ/โฆ (เจคเฉเจนเจพเจกเฉ เจตเจฐเจเจซเจฒเฉ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ) เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒ เจเจฐเจจเจพเฅค
เจเฉเจเจฐ เจ เจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจกเฉเจเจฐ เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจเจฒเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ - เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เจธเฉเจ PHP เจตเจฟเฉฑเจ เจจเจนเฉเจ, เจชเจฐ Go เจตเจฟเฉฑเจ เจตเจฟเจเจธเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจซเจฟเจฐ เจตเฉ เจเจธเจจเฉเฉฐ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ - Telepresence เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจเจพ เจนเฉเจฐ เจตเฉ เจเจธเจพเจจ เจนเฉเจตเฉเจเจพ:
telepresence --namespace {{ .Values.global.env }} --swap-deployment {{ .Chart.Name }}:backend --mount=true
เจเฉเจเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจฌเจฐเจจเฉเจเจธ 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 เจ เจคเฉ เจนเฉเจฐ เจเจเจธเจฒเฉเจเจฐเจพเจ เจจเฉเฉฐ เจ เจฏเฉเจ เจเจฐเจจเจพ เจฏเจพเจฆ เจฐเฉฑเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ - เจจเจนเฉเจ เจคเจพเจ เจเฉเจก เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจจเจพเจฒ เจฒเฉเฉเฉเจเจฆเจพ เจจเจคเฉเจเจพ เจจเจนเฉเจ เจฎเจฟเจฒเฉเจเจพเฅค
เจจเจคเฉเจเฉ
Kubernetes เจฆเฉ เจจเจพเจฒ เจธเจฅเจพเจจเจ เจตเจฟเจเจพเจธ เจเฉฑเจ เจธเจฎเฉฑเจธเจฟเจ เจนเฉ เจเจฟเจธเจฆเจพ เจนเฉฑเจฒ เจเจธ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจฆเฉ เจซเฉเจฒเจฃ เจฆเฉ เจ
เจจเฉเจชเจพเจค เจตเจฟเฉฑเจ เจตเจง เจฐเจฟเจนเจพ เจนเฉ. เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ (เจธเจพเจกเฉ เจเจพเจนเจเจพเจ เจคเฉเจ) เจคเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฌเฉเจจเจคเฉเจเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเฉเจ, เจ
เจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจชเจนเจฟเจฒเฉ เจเจชเจฒเจฌเจง เจธเจพเจงเจจเจพเจ เจจเจพเจฒ เจนเฉฑเจฒ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ, เจเฉ เจเจฟ, เจนเจพเจฒเจพเจเจเจฟ, เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจธเจพเจฌเจค เจจเจนเฉเจ เจเจฐ เจธเจเฉเฅค เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเจน เจจเจพ เจธเจฟเจฐเจซ เจนเฉเจฃ เจ
เจคเฉ เจจเจพ เจธเจฟเจฐเจซ เจธเจพเจกเฉ เจฒเจ เจธเจชเฉฑเจธเจผเจ เจนเฉ เจเจฟเจ เจนเฉ, เจเจธ เจฒเจ เจนเฉเจฐ เจขเฉเจเจตเฉเจ เจธเจพเจงเจจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฆเฉเจจเฉเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจเจ เจนเฉ เจเฉเฉฑเจเฉ เจนเจจ, เจ
เจคเฉ เจเฉเจฒเฉเจชเฉเจฐเฉเจธเฉเจเจธ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจธเจญ เจคเฉเจ เจฎเจธเจผเจนเฉเจฐ เจนเฉ (เจคเจฐเฉเจเฉ เจจเจพเจฒ, เจเฉฑเจฅเฉ เจตเฉ เจนเฉ.
PS
K8s เจเจฟเจชเจธ เจ เจคเฉ เจเฉเจฐเจฟเจเจธ เจธเฉเจฐเฉเจเจผ เจคเฉเจ เจนเฉเจฐ:
- ยซ
เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฟเจชเจธ เจ เจคเฉ เจเฉเจฐเจฟเจเจธ: NGINX เจเจจเจเจฐเฉเจธ เจตเจฟเฉฑเจ เจเจธเจเจฎ เจเจฐเจฐ เจชเฉเจ "; - ยซ
เจนเฉเจฒเจฎ 2 เจฆเฉ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจ เจงเฉเจจ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉ เจธเจฐเฉเจคเจพเจ เจฆเจพ เจคเจฌเจพเจฆเจฒเจพ "; - ยซ
เจตเฉเจฌ เจเจชเจฒเฉเจเฉเจธเจผเจจ 'เจคเฉ เจจเฉเจก เจ เจฒเฉเจเฉเจธเจผเจจ เจ เจคเฉ เจฒเฉเจก เจฌเจพเจฐเฉ "; - ยซ
dev เจธเจพเจเจเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ "; - ยซ
เจตเฉฑเจกเฉ เจกเฉเจเจพเจฌเฉเจธ เจฒเจ เจฌเฉเจเจธเจเจฐเฉเจช เจจเฉเฉฐ เจคเฉเจเจผ เจเจฐเจจเจพ ".
เจธเจฐเฉเจค: www.habr.com