Kubernetes-āĻ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻāĻžāĻˇāĻžāĻ°, āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ IDE-āĻ¤ā§ āĻā§āĻĄ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻĄ/āĻĄāĻŋāĻĒā§āĻ˛āĻ¯āĻŧāĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻ¨āĻž āĻāĻ°ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ¨ - āĻā§āĻŦāĻ˛ F5 āĻāĻŋāĻĒā§āĨ¤ āĻāĻŦāĻ āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻŋāĻ˛ (āĻĄāĻāĻžāĻ°, āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛āĻŦāĻā§āĻ¸ā§...), āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻŦāĻŋāĻāĻžāĻļ āĻāĻĒāĻā§āĻ āĻāĻ°ā§āĻ¨ā§ˇ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§ āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻā§āĻ˛āĻŋ āĻāĻžāĻāĻž āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻāĻāĻŽāĻ¨, āĻāĻā§ āĻ
āĻĒāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛āĻ¤āĻžāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻš, āĻ¸āĻŦāĻāĻŋāĻā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻŽā§ āĻĨāĻžāĻāĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻŦāĻž āĻ¸āĻšāĻāĻāĻžāĻŦā§ "āĻā§āĻ°ā§āĻ¯āĻžāĻ" āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦāĨ¤
1. āĻā§āĻ°āĻžāĻ
āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ IDE-āĻāĻ°āĻ FTP/SFTP āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻā§āĻĄ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻĒāĻĨāĻāĻŋ āĻā§āĻŦ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢā§āĻā§ āĻāĻ ā§:
- āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻā§āĻ° āĻĒāĻĄā§ (āĻĄā§āĻ/āĻ°āĻŋāĻāĻŋāĻ), āĻāĻ¸āĻāĻ¸āĻāĻāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°ā§āĻ° āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻāĻ¸āĻāĻ¸āĻāĻāĻ āĻā§ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°ā§ āĻ¯āĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻŽāĻŋāĻ/āĻĄāĻŋāĻĒā§āĻ˛ā§āĻ¯āĻŧ āĻāĻ°āĻŦā§āĨ¤
- āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ (āĻĒāĻžāĻ¤ā§āĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§
prepare-app
) āĻā§āĻĄ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨emptyDir
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŦāĻ SSH āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻā§āĻĄ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§āĨ¤
āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¸ā§āĻāĻŋāĻŽā§āĻ° āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ Kubernetes-āĻ āĻāĻĄāĻŧāĻŋāĻ¤ 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āĨ¤ āĻā§āĻĒāĻ¨.āĻāĻ¯āĻŧāĻžāĻŽāĻ˛
{{ 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: āĻ¯ā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻā§āĻ¨ āĻ¤āĻŋāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻŽāĻā§āĻā§āĻ° āĻāĻ°āĻŦā§āĻ¨,
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻ¤āĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻāĻ° āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§:
- āĻšā§āĻ˛āĻŽ āĻāĻžāĻ°ā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻ°ā§āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ¯āĻž āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻĒāĻĄāĻŧāĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§;
- āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻŋāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻā§āĻ¨;
- āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋāĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋāĻ-āĻ āĻāĻŽāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
2. āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻā§āĻ¨ā§āĻ¸
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¤ āĻā§āĻ¤āĻŋāĻāĻ° āĻ¨āĻ¯āĻŧ āĻŦāĻ˛ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻšā§āĻ˛āĻŽ āĻāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ā§ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°ā§āĻ° āĻĒāĻā§āĻˇ āĻĨā§āĻā§ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ°ā§āĻā§āĻāĻŋ NOTES.txt
. āĻāĻāĻāĻžāĻŦā§, Kubernetes-āĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ 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 āĻ¸āĻā§āĻā§ āĻāĻžāĻ
āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§ (āĻāĻĒāĻ°ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ¤ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻŋāĻ¤ āĻļā§āĻˇ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§), āĻāĻŽāĻ°āĻž āĻ¸ā§āĻ āĻāĻ°āĻŋ:
- āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻāĻ˛āĻā§;
- āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤
āĻ
āĻŦāĻļāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻā§āĻāĻŋāĻ. āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž Kubernetes API-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ
ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§ --mount=true
(āĻŦāĻž --mount=/dst_path
), āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻ¸ā§āĻāĻāĻĒā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĨā§āĻā§ āĻ°ā§āĻ (/) āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĨā§āĻā§ "āĻā§" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ (āĻāĻāĻ¸ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¯āĻŧ)āĨ¤
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻĻā§āĻāĻŋ - āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ --docker-run
āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻā§āĻĄ āĻ¸āĻš āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°ā§āĻ¨: -v `pwd`:/app
āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĨā§āĻā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ /app
āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§: -v /tmp/app/var/run/secrets:/var/run/secrets
â āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ/āĻā§āĻā§āĻ¨ āĻ¸āĻš āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§āĨ¤
āĻāĻ āĻ
āĻĒāĻļāĻ¨āĻāĻŋ āĻ
āĻŦāĻļā§āĻˇā§ āĻ¸ā§āĻ āĻāĻŽā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻ˛āĻŦā§āĨ¤ NB: āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ CMD
āĻŦāĻž ENTRYPOINT
!
āĻ āĻŋāĻ āĻā§ āĻšāĻŦā§ āĻāĻ°āĻĒāĻ°?
- Kubernetes-āĻ, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ 0 āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻŦā§ - āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ§āĻžāĻ°āĻ āĻ¸āĻš
backend
. - 2āĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĄā§āĻ¸ā§āĻāĻāĻĒā§ āĻ˛āĻā§āĻ āĻšāĻŦā§: āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ (āĻāĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻĨā§āĻā§/āĻā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻŦā§), āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸āĻžāĻĨā§āĨ¤
- āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšā§āĻ˛āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ ENV āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻŦā§ā§ˇ āĻ¯āĻž āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ IDE-āĻ āĻā§āĻĄāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻž āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻĒāĻā§āĻ āĻāĻ°āĻžāĨ¤
- āĻāĻžāĻ āĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯ā§ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛āĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ¸ā§āĻ¨ā§āĻ¸ āĻāĻ˛āĻā§ āĻ¸ā§āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (Ctrl+C āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸ā§āĻļāĻ¨āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨) - āĻĄāĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋ āĻĄā§āĻ¸ā§āĻāĻāĻĒā§ āĻĨāĻžāĻŽāĻŦā§ āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦā§āĨ¤ āĻ¯āĻž āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž, āĻāĻŽāĻāĻ° āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž/āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ/... (āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§) āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĨ¤
āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻ¨āĻž āĻāĻžāĻ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻĒāĻŋāĻāĻāĻāĻĒāĻŋāĻ¤ā§ āĻ¨āĻ¯āĻŧ, āĻā§-āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ - āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ¸ā§āĻ¨ā§āĻ¸ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻāĻ°āĻ āĻ¸āĻšāĻ āĻšāĻŦā§:
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 āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¤ā§āĻŦāĻ°āĻāĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ - āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻā§āĻĄāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻžāĻā§āĻāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
Kubernetes-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°ā§āĻ° āĻ
āĻ¨ā§āĻĒāĻžāĻ¤ā§ āĻŦāĻžāĻĄāĻŧāĻā§āĨ¤ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° (āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§) āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋ, āĻ¯āĻž āĻĻā§āĻ°ā§āĻ āĻĒāĻĨ āĻ§āĻ°ā§ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻŋā§ˇ āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻāĻ¨āĻ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻŦāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻ°āĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻļā§āĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ¸ā§āĻ¨ā§āĻ¸ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦāĻŋāĻā§āĻ¯āĻžāĻ¤ (āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸ā§āĻāĻžāĻ¨ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§)
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
K8s āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯:
- ÂĢ
Kubernetes āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻā§āĻļāĻ˛: NGINX āĻāĻ¨āĻā§āĻ°ā§āĻ¸ā§ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž "; - ÂĢ
āĻšā§āĻ˛āĻŽ 2 āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° "; - ÂĢ
āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻ¨ā§āĻĄ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ "; - ÂĢ
āĻĄā§āĻ āĻ¸āĻžāĻāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ "; - ÂĢ
āĻŦāĻĄāĻŧ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ°āĻž Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com