இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

விநியோகிக்கப்பட்ட பயன்பாடுகளை இணைப்பதற்கும், பாதுகாப்பதற்கும் மற்றும் கண்காணிப்பதற்கும் இஸ்டியோ ஒரு வசதியான கருவியாகும். இஸ்டியோ மென்பொருளை அளவில் இயக்கவும் நிர்வகிக்கவும் பல்வேறு தொழில்நுட்பங்களைப் பயன்படுத்துகிறது, இதில் கன்டெய்னர்கள் பேக்கேஜ் அப்ளிகேஷன் குறியீடு மற்றும் வரிசைப்படுத்தலுக்கான சார்புகள் மற்றும் அந்தக் கொள்கலன்களை நிர்வகிக்க குபெர்னெட்ஸ் ஆகியவை அடங்கும். எனவே, இஸ்டியோவுடன் பணிபுரிய, இந்தத் தொழில்நுட்பங்களின் அடிப்படையில் பல சேவைகளைக் கொண்ட ஒரு பயன்பாடு எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் அறிந்திருக்க வேண்டும் இல்லாமல் இஸ்டியோ. இந்த கருவிகள் மற்றும் கருத்துகள் உங்களுக்கு ஏற்கனவே தெரிந்திருந்தால், இந்த டுடோரியலைத் தவிர்த்துவிட்டு நேரடியாக பகுதிக்குச் செல்லவும் கூகிள் குபெர்னெட்ஸ் எஞ்சினில் (ஜிகேஇ) இஸ்டியோவை நிறுவுகிறது அல்லது நீட்டிப்பை நிறுவுதல் GKE இல் இஸ்டியோ.

இது ஒரு படிப்படியான வழிகாட்டியாகும், இதில் மூலக் குறியீடு முதல் GKE கொள்கலன் வரையிலான முழு செயல்முறையையும் ஒரு எடுத்துக்காட்டு மூலம் உங்களுக்கு இந்த தொழில்நுட்பங்களைப் பற்றிய அடிப்படை புரிதலை வழங்குவோம். இந்த தொழில்நுட்பங்களின் சக்தியை இஸ்டியோ எவ்வாறு பயன்படுத்துகிறது என்பதையும் நீங்கள் பார்க்கலாம். கொள்கலன்கள், குபெர்னெட்ஸ், சர்வீஸ் மெஷ்கள் அல்லது இஸ்டியோ பற்றி உங்களுக்கு எதுவும் தெரியாது என்று இது கருதுகிறது.

பணிகளை

இந்த டுடோரியலில், நீங்கள் பின்வரும் பணிகளை முடிப்பீர்கள்:

  1. பல சேவைகளுடன் கூடிய எளிய ஹலோ வேர்ல்ட் பயன்பாட்டைக் கற்றுக்கொள்வது.
  2. மூலக் குறியீட்டிலிருந்து பயன்பாட்டை இயக்கவும்.
  3. கொள்கலன்களில் பயன்பாட்டை பேக்கேஜிங்.
  4. குபெர்னெட்ஸ் கிளஸ்டரை உருவாக்குதல்.
  5. ஒரு கிளஸ்டரில் கொள்கலன்களை வரிசைப்படுத்துதல்.

நீங்கள் தொடங்குவதற்கு முன்

Kubernetes Engine API ஐ இயக்க வழிமுறைகளைப் பின்பற்றவும்:

  1. செல்லுங்கள் குபெர்னெட்ஸ் எஞ்சின் பக்கம் Google Cloud Platform கன்சோலில்.
  2. ஒரு திட்டத்தை உருவாக்கவும் அல்லது தேர்ந்தெடுக்கவும்.
  3. API மற்றும் தொடர்புடைய சேவைகள் இயக்கப்படும் வரை காத்திருக்கவும். இதற்கு சில நிமிடங்கள் ஆகலாம்.
  4. உங்கள் Google Cloud Platform திட்டப்பணிக்கு பில்லிங் அமைக்கப்பட்டுள்ளதை உறுதிசெய்யவும். பில்லிங்கை எப்படி இயக்குவது என்பதை அறிக.

இந்த டுடோரியலில், மெய்நிகர் இயந்திரத்தைத் தயாரிக்கும் கிளவுட் ஷெல்லைப் பயன்படுத்தலாம் கூகுள் கம்ப்யூட் எஞ்சினில் g1-சிறியது டெபியன் அடிப்படையிலான லினக்ஸ் அல்லது லினக்ஸ் அல்லது மேகோஸ் கணினியுடன்.

விருப்பம் A: Cloud Shell ஐப் பயன்படுத்துதல்

கிளவுட் ஷெல்லைப் பயன்படுத்துவதன் நன்மைகள்:

  • பைதான் 2 மற்றும் பைதான் 3 வளர்ச்சி சூழல்கள் (உட்பட virtualenv) முழுமையாக கட்டமைக்கப்பட்டுள்ளன.
  • கட்டளை வரி கருவிகள் gCloud, கூலியாள், Git и kubectl, நாங்கள் பயன்படுத்தும் இது ஏற்கனவே நிறுவப்பட்டுள்ளது.
  • நீங்கள் தேர்வு செய்ய பல உள்ளன உரை ஆசிரியர்கள்:
    1. குறியீடு திருத்தி, இது கிளவுட் ஷெல் சாளரத்தின் மேல் உள்ள எடிட் ஐகானுடன் திறக்கும்.
    2. இமாக்ஸ், விம் அல்லது நானோ, கிளவுட் ஷெல்லில் உள்ள கட்டளை வரியிலிருந்து திறக்கும்.

உபயோகிக்க கிளவுட் ஷெல்:

  1. GCP கன்சோலுக்குச் செல்லவும்.
  2. பொத்தானை கிளிக் செய்யவும் கிளவுட் ஷெல்லை இயக்கவும் GCP கன்சோல் சாளரத்தின் மேற்புறத்தில் (கிளவுட் ஷெல்லைச் செயல்படுத்தவும்).

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

கீழ் பகுதியில் GCP கன்சோல் கட்டளை வரியுடன் கூடிய கிளவுட் ஷெல் அமர்வு புதிய சாளரத்தில் திறக்கும்.

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

விருப்பம் B: கட்டளை வரி கருவிகளை உள்நாட்டில் பயன்படுத்துதல்

நீங்கள் Linux அல்லது macOS இயங்கும் கணினியில் பணிபுரிந்தால், பின்வரும் கூறுகளை உள்ளமைத்து நிறுவ வேண்டும்:

  1. தனிப்பயனாக்கலாம் பைதான் 3 மற்றும் பைதான் 2 வளர்ச்சி சூழல்.

  2. கிளவுட் SDK ஐ நிறுவவும் கட்டளை வரி கருவியுடன் gCloud.

  3. நிறுவ kubectl - வேலை செய்வதற்கான கட்டளை வரி கருவி Kubernetes.

    gcloud components install kubectl

  4. நிறுவ டோக்கர் சமூக பதிப்பு (CE). நீங்கள் கட்டளை வரி கருவியைப் பயன்படுத்துவீர்கள் கூலியாள்மாதிரி பயன்பாட்டிற்கான கொள்கலன் படங்களை உருவாக்க.

  5. கருவியை நிறுவவும் Git பதிப்பு கட்டுப்பாடுGitHub இலிருந்து மாதிரி விண்ணப்பத்தைப் பெற.

மாதிரி குறியீட்டைப் பதிவிறக்கவும்

  1. மூலக் குறியீட்டைப் பதிவிறக்கவும் ஹலோசர்வர்:

    git clone https://github.com/GoogleCloudPlatform/istio-samples

  2. எடுத்துக்காட்டு குறியீடு கோப்பகத்திற்குச் செல்லவும்:

    cd istio-samples/sample-apps/helloserver

பல சேவைகளுடன் ஒரு பயன்பாட்டை ஆய்வு செய்தல்

மாதிரி பயன்பாடு பைத்தானில் எழுதப்பட்டுள்ளது மற்றும் இரண்டு கூறுகளைக் கொண்டுள்ளது நவக்கிரகங்களும்:

  • சர்வர்: ஒரு முனைப்புள்ளி கொண்ட எளிய சர்வர் பெறு, /, கன்சோலில் "ஹலோ வேர்ல்ட்" என்று அச்சிடுகிறது.
  • ஏற்றி: டிராஃபிக்கை அனுப்பும் ஸ்கிரிப்ட் சர்வர், ஒரு வினாடிக்கு உள்ளமைக்கக்கூடிய எண்ணிக்கையிலான கோரிக்கைகளுடன்.

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

மூலக் குறியீட்டிலிருந்து பயன்பாட்டை இயக்குகிறது

மாதிரி பயன்பாட்டை ஆராய, அதை கிளவுட் ஷெல் அல்லது உங்கள் கணினியில் இயக்கவும்.
1) அட்டவணையில் istio-samples/samples-apps/helloserver ஓடு சர்வர்:

python3 server/server.py

தொடக்கத்தில் சர்வர் பின்வருபவை காட்டப்படும்:

INFO:root:Starting server...

2) கோரிக்கைகளை அனுப்ப மற்றொரு முனைய சாளரத்தைத் திறக்கவும் சர்வர். நீங்கள் கிளவுட் ஷெல்லைப் பயன்படுத்துகிறீர்கள் என்றால், மற்றொரு அமர்வைத் திறக்க சேர் ஐகானைக் கிளிக் செய்யவும்.
3) ஒரு கோரிக்கையை அனுப்பவும் சர்வர்:

curl http://localhost:8080

சர்வர் பதில்கள்:

Hello World!

4) மாதிரிக் குறியீட்டைப் பதிவிறக்கிய கோப்பகத்திலிருந்து, அடங்கிய கோப்பகத்திற்குச் செல்லவும் ஏற்றி:

cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen

5) பின்வரும் சூழல் மாறிகளை உருவாக்கவும்:

export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5

6) இயக்கவும் virtualenv:

virtualenv --python python3 env

7) மெய்நிகர் சூழலை செயல்படுத்தவும்:

source env/bin/activate

8) தேவைகளை அமைக்கவும் ஏற்றி:

pip3 install -r requirements.txt

9) இயக்கவும் ஏற்றி:

python3 loadgen.py

தொடக்கத்தில் ஏற்றி பின்வரும் செய்தியைப் போன்ற ஒன்றைக் காட்டுகிறது:

Starting loadgen: 2019-05-20 10:44:12.448415
5 request(s) complete to http://localhost:8080

மற்றொரு முனைய சாளரத்தில் சர்வர் கன்சோலுக்கு பின்வரும் செய்திகளை வெளியிடுகிறது:

127.0.0.1 - - [21/Jun/2019 14:22:01] "GET / HTTP/1.1" 200 -
INFO:root:GET request,
Path: /
Headers:
Host: localhost:8080
User-Agent: python-requests/2.22.0
Accept-Encoding: gzip, deflate
Accept: */*

நெட்வொர்க்கிங் கண்ணோட்டத்தில், முழு பயன்பாடும் ஒரே ஹோஸ்டில் இயங்குகிறது (உள்ளூர் கணினி அல்லது கிளவுட் ஷெல் மெய்நிகர் இயந்திரம்). எனவே நீங்கள் பயன்படுத்தலாம் லோக்கல் ஹோஸ்ட்கோரிக்கைகளை அனுப்ப சர்வர்.
10) நிறுத்த ஏற்றி и சர்வர், உள்ளிடவும் Ctrl-c ஒவ்வொரு முனைய சாளரத்திலும்.
11) முனைய சாளரத்தில் ஏற்றி மெய்நிகர் சூழலை செயலிழக்கச் செய்யவும்:

deactivate

ஒரு பயன்பாட்டை கொள்கலன்களில் பேக்கேஜிங் செய்தல்

GKE இல் பயன்பாட்டை இயக்க, நீங்கள் மாதிரி பயன்பாட்டை தொகுக்க வேண்டும் - சர்வர் и ஏற்றி - இல் கொள்கலன்கள். ஒரு கொள்கலன் என்பது ஒரு பயன்பாட்டை அதன் சூழலில் இருந்து தனிமைப்படுத்த பேக்கேஜ் செய்வதற்கான ஒரு வழியாகும்.

ஒரு பயன்பாட்டை ஒரு கொள்கலனில் தொகுக்க, உங்களுக்குத் தேவை டோக்கர்ஃபைல். டோக்கர்ஃபைல் பயன்பாட்டின் மூலக் குறியீடு மற்றும் அதன் சார்புகளை உருவாக்குவதற்கான கட்டளைகளை வரையறுக்கும் உரைக் கோப்பாகும் டோக்கர் படம். கட்டப்பட்டதும், படத்தை Docker Hub அல்லது போன்ற கண்டெய்னர் பதிவேட்டில் பதிவேற்றுகிறீர்கள் கொள்கலன் பதிவு.

உதாரணம் ஏற்கனவே உள்ளது டோக்கர்ஃபைல் செய்ய சர்வர் и ஏற்றி படங்களை சேகரிக்க தேவையான அனைத்து கட்டளைகளுடன். கீழே - டோக்கர்ஃபைல் செய்ய சர்வர்:

FROM python:3-slim as base
FROM base as builder
RUN apt-get -qq update 
    && apt-get install -y --no-install-recommends 
        g++ 
    && rm -rf /var/lib/apt/lists/*

# Enable unbuffered logging
FROM base as final
ENV PYTHONUNBUFFERED=1

RUN apt-get -qq update 
    && apt-get install -y --no-install-recommends 
        wget

WORKDIR /helloserver

# Grab packages from builder
COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/

# Add the application
COPY . .

EXPOSE 8080
ENTRYPOINT [ "python", "server.py" ]

  • அணி பைத்தானில் இருந்து: 3-மெலிதான தளம் டோக்கரை சமீபத்தியதைப் பயன்படுத்தச் சொல்கிறது பைதான் 3 படம் ஒரு தளமாக.
  • அணி நகலெடு. . மூல கோப்புகளை தற்போதைய வேலை கோப்பகத்திற்கு நகலெடுக்கிறது (எங்கள் விஷயத்தில் மட்டும் server.py) கொள்கலனின் கோப்பு முறைமைக்கு.
  • ENTRYPOINT கொள்கலனைத் தொடங்கப் பயன்படுத்தப்படும் கட்டளையை வரையறுக்கிறது. எங்கள் விஷயத்தில், இந்த கட்டளை நீங்கள் இயக்கியதைப் போலவே இருக்கும் server.py மூலக் குறியீட்டிலிருந்து.
  • அணி வெளிப்படுத்து என்று குறிப்பிடுகிறது சர்வர் போர்ட் மூலம் தரவுக்காக காத்திருக்கிறது 8080. இந்த அணி இல்லை துறைமுகங்களை வழங்குகிறது. துறைமுகத்தைத் திறக்க இது ஒருவித ஆவணமாகும் 8080 கொள்கலனைத் தொடங்கும் போது.

உங்கள் விண்ணப்பத்தை கன்டெய்னரைஸ் செய்ய தயாராகிறது

1) பின்வரும் சூழல் மாறிகளை அமைக்கவும். மாற்றவும் PROJECT_ID உங்கள் GCP திட்ட ஐடிக்கு.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

மதிப்புகளைப் பயன்படுத்துதல் PROJECT_ID и GCR_REPO நீங்கள் டோக்கர் படத்தை உருவாக்கும்போது அதைக் குறியிட்டு, அதை ஒரு தனிப்பட்ட கொள்கலன் பதிவேட்டில் தள்ளுங்கள்.

2) கட்டளை வரி கருவிக்கான இயல்புநிலை GCP திட்டத்தை அமைக்கவும் gCloud.

gcloud config set project $PROJECT_ID

3) கட்டளை வரி கருவிக்கான இயல்புநிலை மண்டலத்தை அமைக்கவும் gCloud.

gcloud config set compute/zone us-central1-b

4) GCP திட்டத்தில் கன்டெய்னர் ரெஜிஸ்ட்ரி சேவை இயக்கப்பட்டிருப்பதை உறுதிசெய்யவும்.

gcloud services enable containerregistry.googleapis.com

கொள்கலன் சேவையகம்

  1. உதாரணம் அமைந்துள்ள கோப்பகத்திற்குச் செல்லவும் சர்வர்:

    cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/

  2. பயன்படுத்தி படத்தை அசெம்பிள் செய்யவும் டோக்கர்ஃபைல் நீங்கள் முன்பு வரையறுத்த சூழல் மாறிகள்:

    docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .

அளவுரு -t டோக்கர் குறிச்சொல்லைக் குறிக்கிறது. கொள்கலனைப் பயன்படுத்தும்போது நீங்கள் பயன்படுத்தும் படத்தின் பெயர் இதுவாகும்.

  1. படத்தை கொள்கலன் பதிவேட்டில் பதிவேற்றவும்:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

லோட்ஜெனின் கொள்கலன்

1) உதாரணம் அமைந்துள்ள கோப்பகத்திற்குச் செல்லவும் ஏற்றி:

cd ../loadgen

2) படத்தை சேகரிக்கவும்:

docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .

3) படத்தை கொள்கலன் பதிவேட்டில் பதிவேற்றவும்:

docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1

படங்களின் பட்டியலைப் பார்க்கவும்

களஞ்சியத்தில் உள்ள படங்களின் பட்டியலை மதிப்பாய்வு செய்து, படங்கள் பதிவேற்றப்பட்டுள்ளதா என்பதைச் சரிபார்க்கவும்:

gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio

கட்டளை புதிதாக பதிவேற்றப்பட்ட படங்களின் பெயர்களைக் காட்டுகிறது:

NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen

GKE கிளஸ்டரை உருவாக்குதல்.

இந்த கொள்கலன்களை கிளவுட் ஷெல் மெய்நிகர் கணினியில் அல்லது கட்டளையுடன் கணினியில் இயக்கலாம் டக்கர் ரன். ஆனால் உற்பத்தி சூழலில், கொள்கலன்களை மையமாக ஒழுங்கமைக்க உங்களுக்கு ஒரு வழி தேவை. எடுத்துக்காட்டாக, கன்டெய்னர்கள் எப்பொழுதும் இயங்குவதை உறுதிசெய்யும் ஒரு அமைப்பு உங்களுக்குத் தேவை, மேலும் போக்குவரத்து அதிகரித்தால், கூடுதல் கொள்கலன் நிகழ்வுகளை அளவிடுவதற்கும் சுழற்றுவதற்கும் உங்களுக்கு ஒரு வழி தேவை.

கொள்கலன் செய்யப்பட்ட பயன்பாடுகளை இயக்க நீங்கள் பயன்படுத்தலாம் ஜி.கே.இ. GKE என்பது ஒரு கன்டெய்னர் ஆர்கெஸ்ட்ரேஷன் தளமாகும், இது மெய்நிகர் இயந்திரங்களை ஒரு கிளஸ்டராக ஒருங்கிணைக்கிறது. ஒவ்வொரு மெய்நிகர் இயந்திரமும் ஒரு முனை என்று அழைக்கப்படுகிறது. GKE கிளஸ்டர்கள் திறந்த மூல குபெர்னெட்ஸ் கிளஸ்டர் மேலாண்மை அமைப்பை அடிப்படையாகக் கொண்டவை. குபெர்னெட்ஸ் கிளஸ்டருடன் தொடர்புகொள்வதற்கான வழிமுறைகளை வழங்குகிறது.

GKE கிளஸ்டரை உருவாக்குதல்:

1) ஒரு கிளஸ்டரை உருவாக்கவும்:

gcloud container clusters create istioready 
  --cluster-version latest 
  --machine-type=n1-standard-2 
  --num-nodes 4

அணி gCloud நீங்கள் குறிப்பிட்ட GCP திட்டத்திலும் இயல்புநிலை மண்டலத்திலும் ஒரு istioready கிளஸ்டரை உருவாக்குகிறது. இஸ்டியோவை இயக்க, குறைந்தது 4 முனைகள் மற்றும் ஒரு மெய்நிகர் இயந்திரத்தை வைத்திருக்க பரிந்துரைக்கிறோம் n1-தரநிலை-2.

குழு சில நிமிடங்களில் கிளஸ்டரை உருவாக்குகிறது. கிளஸ்டர் தயாரானதும், கட்டளை இது போன்ற ஒன்றை வெளியிடுகிறது сообщение.

2) கட்டளை வரி கருவியில் நற்சான்றிதழ்களை வழங்கவும் kubectlகிளஸ்டரை நிர்வகிக்க இதைப் பயன்படுத்த:

gcloud container clusters get-credentials istioready

3) இப்போது நீங்கள் குபெர்னெட்டஸுடன் தொடர்பு கொள்ளலாம் kubectl. எடுத்துக்காட்டாக, பின்வரும் கட்டளை முனைகளின் நிலையைக் கண்டறியலாம்:

kubectl get nodes

கட்டளை முனைகளின் பட்டியலை உருவாக்குகிறது:

NAME                                       STATUS   ROLES    AGE    VERSION
gke-istoready-default-pool-dbeb23dc-1vg0   Ready    <none>   99s    v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-36z5   Ready    <none>   100s   v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-fj7s   Ready    <none>   99s    v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-wbjw   Ready    <none>   99s    v1.13.6-gke.13

குபெர்னெட்டஸின் முக்கிய கருத்துக்கள்

வரைபடம் GKE இல் ஒரு பயன்பாட்டைக் காட்டுகிறது:

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

நீங்கள் GKE இல் கொள்கலன்களைப் பயன்படுத்துவதற்கு முன், குபெர்னெட்ஸின் முக்கிய கருத்துக்களைக் கற்றுக்கொள்ளுங்கள். நீங்கள் மேலும் அறிய விரும்பினால், கடைசியில் இணைப்புகள் உள்ளன.

  • முனைகள் மற்றும் கொத்துகள். GKE இல், கணு என்பது ஒரு மெய்நிகர் இயந்திரம். மற்ற குபெர்னெட்ஸ் இயங்குதளங்களில், கணு ஒரு கணினி அல்லது மெய்நிகர் இயந்திரமாக இருக்கலாம். ஒரு கிளஸ்டர் என்பது முனைகளின் தொகுப்பாகும், இது நீங்கள் ஒரு கொள்கலன் செய்யப்பட்ட பயன்பாட்டை வரிசைப்படுத்தும் ஒற்றை அலகு என்று கருதலாம்.
  • காய்கள். குபெர்னெட்டஸில், கொள்கலன்கள் காய்களில் இயங்குகின்றன. குபெர்னெட்டஸில் உள்ள ஒரு பாட் என்பது பிரிக்க முடியாத அலகு. ஒரு பாட் ஒன்று அல்லது அதற்கு மேற்பட்ட கொள்கலன்களை வைத்திருக்கிறது. நீங்கள் சர்வர் கொள்கலன்களை வரிசைப்படுத்துங்கள் மற்றும் ஏற்றி தனி காய்களில். ஒரு பானையில் பல கொள்கலன்கள் இருக்கும்போது (உதாரணமாக, ஒரு பயன்பாட்டு சேவையகம் மற்றும் ப்ராக்ஸி சர்வர்), கொள்கலன்கள் ஒரு தனி நிறுவனமாக நிர்வகிக்கப்படுகின்றன மற்றும் பாட் வளங்களைப் பகிர்ந்து கொள்கின்றன.
  • வரிசைப்படுத்தல்கள். குபெர்னெட்டஸில், வரிசைப்படுத்தல் என்பது ஒரே மாதிரியான காய்களின் தொகுப்பாகும். கிளஸ்டர் முனைகளில் விநியோகிக்கப்படும் காய்களின் பல பிரதிகளை வரிசைப்படுத்தல் தொடங்குகிறது. வரிசைப்படுத்தல் தோல்வியுற்ற அல்லது பதிலளிக்காத காய்களை தானாகவே மாற்றும்.
  • குபெர்னெட்ஸ் சேவை. GKE இல் பயன்பாட்டுக் குறியீட்டை இயக்கும்போது, ​​இடையேயான இணைப்பு ஏற்றி и சர்வர். நீங்கள் கிளவுட் ஷெல் மெய்நிகர் கணினி அல்லது டெஸ்க்டாப்பில் சேவைகளைத் தொடங்கியபோது, ​​கோரிக்கைகளை அனுப்பியுள்ளீர்கள் சர்வர் முகவரி மூலம் லோக்கல் ஹோஸ்ட்: 8080. GKE க்கு பயன்படுத்தப்பட்டதும், கிடைக்கும் முனைகளில் காய்கள் செயல்படுத்தப்படும். இயல்பாக, பாட் எந்த முனையில் இயங்குகிறது என்பதை நீங்கள் கட்டுப்படுத்த முடியாது, எனவே நீங்கள் காய்கள் நிரந்தர IP முகவரிகள் இல்லை.
    ஒரு ஐபி முகவரியைப் பெற சர்வர், நீங்கள் காய்களின் மேல் ஒரு பிணைய சுருக்கத்தை வரையறுக்க வேண்டும். அதுதான் அது குபெர்னெட்ஸ் சேவை. குபெர்னெட்டஸ் சேவையானது காய்களின் தொகுப்பிற்கு ஒரு நிலையான இறுதிப் புள்ளியை வழங்குகிறது. ஒரு சில உள்ளன சேவைகளின் வகைகள். சர்வர் பயன்கள் லோட் பேலன்சர், இது தொடர்பு கொள்ள வெளிப்புற ஐபி முகவரியை வழங்குகிறது சர்வர் கிளஸ்டருக்கு வெளியே இருந்து.
    குபெர்னெட்டஸ் டிஎன்எஸ் பெயர்களை வழங்கும் உள்ளமைக்கப்பட்ட டிஎன்எஸ் அமைப்பையும் கொண்டுள்ளது (உதாரணமாக, helloserver.default.cluster.local) சேவைகள். இதற்கு நன்றி, கொத்துக்குள் இருக்கும் காய்கள், கிளஸ்டரில் உள்ள மற்ற காய்களுடன் நிரந்தர முகவரியில் தொடர்பு கொள்கின்றன. கிளவுட் ஷெல் அல்லது கணினி போன்ற கிளஸ்டருக்கு வெளியே DNS பெயரைப் பயன்படுத்த முடியாது.

குபெர்னெட்டஸ் வெளிப்படுத்துகிறார்

நீங்கள் பயன்பாட்டை மூலத்திலிருந்து இயக்கியபோது, ​​நீங்கள் கட்டாய கட்டளையைப் பயன்படுத்தியுள்ளீர்கள் python3

server.py

கட்டாயமானது ஒரு வினைச்சொல்லைக் குறிக்கிறது: "இதைச் செய்."

குபெர்னெட்ஸ் பயன்படுத்துகிறது அறிவிப்பு மாதிரி. குபர்னெட்டஸிடம் என்ன செய்ய வேண்டும் என்று நாங்கள் கூறவில்லை, மாறாக விரும்பிய நிலையை விவரிக்கிறோம் என்பதே இதன் பொருள். எடுத்துக்காட்டாக, குபெர்னெட்டஸ் கணினியின் உண்மையான நிலையை விரும்பிய நிலைக்கு ஒத்திருக்க தேவையான காய்களைத் தொடங்கி நிறுத்துகிறது.

மேனிஃபெஸ்டுகள் அல்லது கோப்புகளில் விரும்பிய நிலையை நீங்கள் குறிப்பிடுகிறீர்கள் YAML. YAML கோப்பில் ஒன்று அல்லது அதற்கு மேற்பட்ட குபெர்னெட்ஸ் பொருள்களுக்கான விவரக்குறிப்புகள் உள்ளன.

எடுத்துக்காட்டில் YAML கோப்பு உள்ளது சர்வர் и ஏற்றி. ஒவ்வொரு YAML கோப்பும் வரிசைப்படுத்தல் பொருள் மற்றும் குபெர்னெட்ஸ் சேவையின் விரும்பிய நிலையைக் குறிப்பிடுகிறது.

சர்வர்.யாம்எல்

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloserver
spec:
  selector:
    matchLabels:
      app: helloserver
  replicas: 1
  template:
    metadata:
      labels:
        app: helloserver
    spec:
      terminationGracePeriodSeconds: 5
      restartPolicy: Always
      containers:
      - name: main
        image: gcr.io/google-samples/istio/helloserver:v0.0.1
        imagePullPolicy: Always

  • வகையான பொருளின் வகையைக் குறிக்கிறது.
  • மெட்டாடேட்டா.பெயர் வரிசைப்படுத்தல் பெயரைக் குறிப்பிடுகிறது.
  • முதல் களம் ஸ்பெக் விரும்பிய நிலையின் விளக்கத்தைக் கொண்டுள்ளது.
  • ஸ்பெக்.பிரதிகள் காய்களின் விரும்பிய எண்ணிக்கையைக் குறிக்கிறது.
  • பிரிவில் spec.template ஒரு பாட் டெம்ப்ளேட்டை வரையறுக்கிறது. பாட் விவரக்குறிப்பில் ஒரு புலம் உள்ளது படத்தை, இது கொள்கலன் பதிவேட்டில் இருந்து பிரித்தெடுக்கப்பட வேண்டிய படத்தின் பெயரைக் குறிப்பிடுகிறது.

சேவை பின்வருமாறு வரையறுக்கப்பட்டுள்ளது:

apiVersion: v1
kind: Service
metadata:
  name: hellosvc
spec:
  type: LoadBalancer
  selector:
    app: helloserver
  ports:
  - name: http
    port: 80
    targetPort: 8080

  • லோட் பேலன்சர்: வாடிக்கையாளர்கள் லோட் பேலன்சரின் ஐபி முகவரிக்கு கோரிக்கைகளை அனுப்புகிறார்கள், இது நிலையான ஐபி முகவரியைக் கொண்டுள்ளது மற்றும் கிளஸ்டருக்கு வெளியே இருந்து அணுகக்கூடியது.
  • இலக்கு துறைமுகம்: நீங்கள் நினைவில் வைத்துள்ளபடி, அணி எக்ஸ்போஸ் 8080 в டோக்கர்ஃபைல் துறைமுகங்களை வழங்கவில்லை. நீங்கள் துறைமுகத்தை வழங்குகிறீர்கள் 8080எனவே நீங்கள் கொள்கலனை தொடர்பு கொள்ளலாம் சர்வர் கிளஸ்டருக்கு வெளியே. எங்கள் விஷயத்தில் hellosvc.default.cluster.local:80 (குறுகிய பெயர்: ஹெலோஸ்விசி) துறைமுகத்திற்கு ஒத்துள்ளது 8080 Pod IP முகவரிகள் ஹலோசர்வர்.
  • துறைமுக: இது கிளஸ்டரில் உள்ள பிற சேவைகள் கோரிக்கைகளை அனுப்பும் போர்ட் எண்.

loadgen.yaml

வரிசைப்படுத்தல் பொருள் loadgen.yaml போல சர்வர்.யாம்எல். வித்தியாசம் என்னவென்றால், வரிசைப்படுத்தல் பொருள் ஒரு பகுதியைக் கொண்டுள்ளது சிஏ. இது தேவைப்படும் சூழல் மாறிகளை வரையறுக்கிறது ஏற்றி மூலத்திலிருந்து பயன்பாட்டை இயக்கும் போது நீங்கள் நிறுவியவை.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: loadgenerator
spec:
  selector:
    matchLabels:
      app: loadgenerator
  replicas: 1
  template:
    metadata:
      labels:
        app: loadgenerator
    spec:
      terminationGracePeriodSeconds: 5
      restartPolicy: Always
      containers:
      - name: main
        image: gcr.io/google-samples/istio/loadgen:v0.0.1
        imagePullPolicy: Always
        env:
        - name: SERVER_ADDR
          value: "http://hellosvc:80/"
        - name: REQUESTS_PER_SECOND
          value: "10"
        resources:
          requests:
            cpu: 300m
            memory: 256Mi
          limits:
            cpu: 500m
            memory: 512Mi

நேரம் ஏற்றி புலத்திற்கான உள்வரும் கோரிக்கைகளை ஏற்காது வகை தெரியாத ClusterIP. இந்த வகையானது கிளஸ்டரில் உள்ள சேவைகள் பயன்படுத்தக்கூடிய நிலையான ஐபி முகவரியை வழங்குகிறது, ஆனால் இந்த ஐபி முகவரி வெளிப்புற கிளையன்ட்களுக்கு வெளிப்படாது.

apiVersion: v1
kind: Service
metadata:
  name: loadgensvc
spec:
  type: ClusterIP
  selector:
    app: loadgenerator
  ports:
  - name: http
    port: 80
    targetPort: 8080

GKE இல் கொள்கலன்களைப் பயன்படுத்துதல்

1) உதாரணம் அமைந்துள்ள கோப்பகத்திற்குச் செல்லவும் சர்வர்:

cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/

2) திற சர்வர்.யாம்எல் உரை திருத்தியில்.
3) புலத்தில் பெயரை மாற்றவும் படத்தை உங்கள் டோக்கர் படத்தின் பெயருக்கு.

image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1

மாற்றவும் PROJECT_ID உங்கள் GCP திட்ட ஐடிக்கு.
4) சேமித்து மூடவும் சர்வர்.யாம்எல்.
5) YAML கோப்பை Kubernetes க்கு பயன்படுத்தவும்:

kubectl apply -f server.yaml

வெற்றிகரமாக முடிந்ததும், கட்டளை பின்வரும் குறியீட்டை உருவாக்குகிறது:

deployment.apps/helloserver created
service/hellosvc created

6) கோப்பகத்திற்குச் செல்லவும் ஏற்றி:

cd ../loadgen

7) திற loadgen.yaml உரை திருத்தியில்.
8) புலத்தில் பெயரை மாற்றவும் படத்தை உங்கள் டோக்கர் படத்தின் பெயருக்கு.

image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1

மாற்றவும் PROJECT_ID உங்கள் GCP திட்ட ஐடிக்கு.
9) சேமித்து மூடவும் loadgen.yaml, உரை திருத்தியை மூடு.
10) YAML கோப்பை Kubernetes க்கு பயன்படுத்தவும்:

kubectl apply -f loadgen.yaml

வெற்றிகரமாக முடிந்ததும், கட்டளை பின்வரும் குறியீட்டை உருவாக்குகிறது:

deployment.apps/loadgenerator created
service/loadgensvc created

11) காய்களின் நிலையைச் சரிபார்க்கவும்:

kubectl get pods

கட்டளை நிலையை காட்டுகிறது:

NAME                             READY   STATUS    RESTARTS   AGE
helloserver-69b9576d96-mwtcj     1/1     Running   0          58s
loadgenerator-774dbc46fb-gpbrz   1/1     Running   0          57s

12) காய்களிலிருந்து பயன்பாட்டுப் பதிவுகளைப் பிரித்தெடுக்கவும் ஏற்றி. மாற்றவும் POD_ID முந்தைய பதிலில் இருந்து அடையாளங்காட்டிக்கு.

kubectl logs loadgenerator-POD_ID

13) வெளிப்புற ஐபி முகவரிகளைப் பெறவும் ஹெலோஸ்விசி:

kubectl get service

கட்டளை பதில் இது போல் தெரிகிறது:

NAME         TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
hellosvc     LoadBalancer   10.81.15.158   192.0.2.1       80:31127/TCP   33m
kubernetes   ClusterIP      10.81.0.1      <none>          443/TCP        93m
loadgensvc   ClusterIP      10.81.15.155   <none>          80/TCP         4m52s

14) ஒரு கோரிக்கையை அனுப்பவும் ஹெலோஸ்விசி: பதிலாக EXTERNAL_IP வெளிப்புற ஐபி முகவரிக்கு ஹெலோஸ்விசி.

curl http://EXTERNAL_IP

இஸ்டியோவை எடுத்துக் கொள்வோம்

உங்களிடம் ஏற்கனவே ஒரு பயன்பாடு GKE க்கு பயன்படுத்தப்பட்டுள்ளது. ஏற்றி Kubernetes DNS ஐப் பயன்படுத்தலாம் (hellovc:80) கோரிக்கைகளை அனுப்ப சர்வர்மற்றும் நீங்கள் கோரிக்கைகளை அனுப்பலாம் சர்வர் வெளிப்புற ஐபி முகவரி மூலம். Kubernetes பல அம்சங்களைக் கொண்டிருந்தாலும், சேவைகளைப் பற்றி சில தகவல்கள் இல்லை:

  • சேவைகள் எவ்வாறு தொடர்பு கொள்கின்றன? சேவைகளுக்கு இடையிலான உறவுகள் என்ன? சேவைகளுக்கு இடையே போக்குவரத்து எவ்வாறு செல்கிறது? அது உங்களுக்குத் தெரியுமா ஏற்றி க்கு கோரிக்கைகளை அனுப்புகிறது சர்வர், ஆனால் பயன்பாட்டைப் பற்றி உங்களுக்கு எதுவும் தெரியாது என்று கற்பனை செய்து பாருங்கள். இந்த கேள்விகளுக்கு பதிலளிக்க, GKE இல் இயங்கும் காய்களின் பட்டியலைப் பார்ப்போம்.
  • அளவீடுகள். எவ்வளவு நேரம் சர்வர் உள்வரும் கோரிக்கைக்கு பதிலளிக்கிறதா? சேவையகத்தால் வினாடிக்கு எத்தனை கோரிக்கைகள் பெறப்படுகின்றன? இது பிழை செய்திகளை தருகிறதா?
  • பாதுகாப்பு தகவல். இடையே போக்குவரத்து ஏற்றி и சர்வர் கடந்து செல்கிறது , HTTP அல்லது மூலம் mTLS?

இந்தக் கேள்விகளுக்கெல்லாம் இஸ்டியோ பதிலளிக்கிறார். இதைச் செய்ய, இஸ்டியோ சைட்கார் ப்ராக்ஸியை வைக்கிறது தூதுவர் ஒவ்வொரு காய்களிலும். விண்ணப்பக் கொள்கலன்களுக்கு உள்வரும் மற்றும் வெளிச்செல்லும் அனைத்து போக்குவரத்தையும் என்வாய் ப்ராக்ஸி குறுக்கிடுகிறது. என்று அர்த்தம் சர்வர் и ஏற்றி சைட்கார் ப்ராக்ஸி தூதர் மூலமாகவும், அனைத்து ட்ராஃபிக் மூலமாகவும் பெறவும் ஏற்றி к சர்வர் தூதர் ப்ராக்ஸி வழியாக செல்கிறது.

தூதர் ப்ராக்ஸிகளுக்கு இடையேயான இணைப்புகள் ஒரு சேவை வலையை உருவாக்குகின்றன. சர்வீஸ் மெஷ் கட்டிடக்கலை குபெர்னெட்டஸின் மேல் ஒரு அடுக்கு கட்டுப்பாட்டை வழங்குகிறது.

இஸ்டியோவிற்கான விண்ணப்பத்தைத் தயாரித்தல்

Envoy ப்ராக்ஸிகள் தங்களுடைய சொந்த கொள்கலன்களில் இயங்குவதால், பயன்பாட்டுக் குறியீட்டில் எந்த மாற்றமும் இல்லாமல் GKE கிளஸ்டரின் மேல் Istio நிறுவ முடியும். ஆனால் உங்கள் விண்ணப்பத்தை இஸ்டியோவால் நிர்வகிக்க நீங்கள் சில வேலைகளைச் செய்துள்ளீர்கள்:

  • அனைத்து கொள்கலன்களுக்கான சேவைகள். வரிசைப்படுத்தல்களுக்கு சர்வர் и ஏற்றி குபெர்னெட்ஸ் சேவையுடன் இணைக்கப்பட்டுள்ளது. கூட ஏற்றி, உள்வரும் கோரிக்கைகளைப் பெறாத, ஒரு சேவை உள்ளது.
  • சேவைகளில் உள்ள துறைமுகங்களுக்கு பெயர்கள் இருக்க வேண்டும். சேவை போர்ட்களை GKE இல் பெயரிடாமல் விடலாம், Istio க்கு நீங்கள் குறிப்பிட வேண்டும் துறைமுக பெயர் அவரது நெறிமுறையின்படி. YAML கோப்பில் போர்ட் சர்வர் அழைக்கப்படுகிறது : httpஏனெனில் சர்வர் நெறிமுறையைப் பயன்படுத்துகிறது , HTTP... என்றால் சேவை பயன்படுத்தப்பட்டது gRPC, நீங்கள் துறைமுகத்திற்கு பெயரிடுவீர்கள் grpc.
  • வரிசைப்படுத்தல்கள் கொடியிடப்பட்டுள்ளன. எனவே, அதே சேவையின் பதிப்புகளுக்கு இடையே போக்குவரத்தைப் பிரிப்பது போன்ற இஸ்டியோவின் போக்குவரத்து மேலாண்மை அம்சங்களை நீங்கள் பயன்படுத்தலாம்.

இஸ்டியோவை நிறுவுகிறது

இஸ்டியோவை நிறுவ இரண்டு வழிகள் உள்ளன. முடியும் GKE நீட்டிப்பில் இஸ்டியோவை இயக்கவும் அல்லது இஸ்டியோவின் திறந்த மூல பதிப்பை நிறுவவும் கொத்து மீது. GKE இல் Istio மூலம், GKE கிளஸ்டர் வாழ்க்கைச் சுழற்சி முழுவதும் Istio நிறுவல்கள் மற்றும் மேம்படுத்தல்களை நீங்கள் எளிதாக நிர்வகிக்கலாம். இஸ்டியோவின் சமீபத்திய பதிப்பு அல்லது உங்கள் இஸ்டியோ கண்ட்ரோல் பேனல் உள்ளமைவின் மீது கூடுதல் கட்டுப்பாட்டை நீங்கள் விரும்பினால், GKE நீட்டிப்பில் Istio க்குப் பதிலாக திறந்த மூல பதிப்பை நிறுவவும். அணுகுமுறையைத் தீர்மானிக்க, கட்டுரையைப் படியுங்கள் GKE இல் எனக்கு இஸ்டியோ தேவையா?.

ஒரு விருப்பத்தைத் தேர்ந்தெடுத்து, பொருத்தமான வழிகாட்டியை மதிப்பாய்வு செய்து, உங்கள் கிளஸ்டரில் இஸ்டியோவை நிறுவுவதற்கான வழிமுறைகளைப் பின்பற்றவும். நீங்கள் புதிதாக பயன்படுத்தப்பட்ட பயன்பாட்டுடன் இஸ்டியோவைப் பயன்படுத்த விரும்பினால், சைட்கார் செயல்படுத்தலை செயல்படுத்தவும் பெயர்வெளிக்கு இயல்புநிலை.

சுத்தம்

இந்தப் டுடோரியலில் நீங்கள் பயன்படுத்திய ஆதாரங்களுக்காக உங்கள் Google Cloud Platform கணக்கில் கட்டணம் வசூலிக்கப்படுவதைத் தவிர்க்க, Istio ஐ நிறுவி, மாதிரி பயன்பாட்டுடன் விளையாடியவுடன் கொள்கலன் கிளஸ்டரை நீக்கவும். இது கணக்கீட்டு நிகழ்வுகள், வட்டுகள் மற்றும் பிணைய ஆதாரங்கள் போன்ற அனைத்து கிளஸ்டர் ஆதாரங்களையும் அகற்றும்.

அடுத்து என்ன?

ஆதாரம்: www.habr.com

கருத்தைச் சேர்