Merge remote-tracking branch 'upstream/main' into dev-1.23
commit
018f9d05a2
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,87 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='389.559851pt' height='13.50934pt' viewBox='-.239051 -.240635 389.559851 13.50934'>
|
||||
<defs>
|
||||
<path id='g1-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>
|
||||
<path id='g1-91' d='M2.988792 2.988792V2.546451H1.829141V-8.524035H2.988792V-8.966376H1.3868V2.988792H2.988792Z'/>
|
||||
<path id='g1-93' d='M1.853051-8.966376H.251059V-8.524035H1.41071V2.546451H.251059V2.988792H1.853051V-8.966376Z'/>
|
||||
<path id='g0-58' d='M2.199751-.573848C2.199751-.920548 1.912827-1.159651 1.625903-1.159651C1.279203-1.159651 1.0401-.872727 1.0401-.585803C1.0401-.239103 1.327024 0 1.613948 0C1.960648 0 2.199751-.286924 2.199751-.573848Z'/>
|
||||
<path id='g0-97' d='M3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665ZM4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.944458 4.27995-1.075965 4.387547-1.542217C4.471233-1.841096 4.531009-2.10411 4.62665-2.450809C5.068991-4.244085 5.176588-4.674471 5.176588-4.746202C5.176588-4.913574 5.045081-5.045081 4.865753-5.045081C4.483188-5.045081 4.387547-4.62665 4.363636-4.483188Z'/>
|
||||
<path id='g0-99' d='M4.674471-4.495143C4.447323-4.495143 4.339726-4.495143 4.172354-4.351681C4.100623-4.291905 3.969116-4.112578 3.969116-3.921295C3.969116-3.682192 4.148443-3.53873 4.375592-3.53873C4.662516-3.53873 4.985305-3.777833 4.985305-4.25604C4.985305-4.829888 4.435367-5.272229 3.610461-5.272229C2.044334-5.272229 .478207-3.56264 .478207-1.865006C.478207-.824907 1.123786 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.542217-.119552 1.279203-.836862 1.279203-1.43462C1.279203-1.853051 1.482441-3.012702 1.912827-3.825654C2.223661-4.387547 2.86924-5.033126 3.622416-5.033126C3.777833-5.033126 4.435367-5.009215 4.674471-4.495143Z'/>
|
||||
<path id='g0-100' d='M6.01345-7.998007C6.025405-8.045828 6.049315-8.117559 6.049315-8.177335C6.049315-8.296887 5.929763-8.296887 5.905853-8.296887C5.893898-8.296887 5.308095-8.249066 5.248319-8.237111C5.045081-8.225156 4.865753-8.201245 4.65056-8.18929C4.351681-8.16538 4.267995-8.153425 4.267995-7.938232C4.267995-7.81868 4.363636-7.81868 4.531009-7.81868C5.116812-7.81868 5.128767-7.711083 5.128767-7.591532C5.128767-7.519801 5.104857-7.424159 5.092902-7.388294L4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.71731 4.244085-.968369 4.327771-1.303113L6.01345-7.998007ZM3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665Z'/>
|
||||
<path id='g0-101' d='M2.139975-2.773599C2.462765-2.773599 3.275716-2.797509 3.849564-3.012702C4.758157-3.359402 4.841843-4.052802 4.841843-4.267995C4.841843-4.794022 4.387547-5.272229 3.598506-5.272229C2.343213-5.272229 .537983-4.136488 .537983-2.008468C.537983-.753176 1.255293 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.685679-.119552 1.327024-.657534 1.327024-1.542217C1.327024-1.709589 1.327024-2.008468 1.506351-2.773599H2.139975ZM1.566127-3.012702C2.080199-4.853798 3.21594-5.033126 3.598506-5.033126C4.124533-5.033126 4.483188-4.722291 4.483188-4.267995C4.483188-3.012702 2.570361-3.012702 2.068244-3.012702H1.566127Z'/>
|
||||
<path id='g0-105' d='M3.383313-1.709589C3.383313-1.769365 3.335492-1.817186 3.263761-1.817186C3.156164-1.817186 3.144209-1.78132 3.084433-1.578082C2.773599-.490162 2.283437-.119552 1.888917-.119552C1.745455-.119552 1.578082-.155417 1.578082-.514072C1.578082-.836862 1.721544-1.195517 1.853051-1.554172L2.689913-3.777833C2.725778-3.873474 2.809465-4.088667 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 1.984558-3.93325 1.888917-3.670237L1.052055-1.446575C.980324-1.255293 .908593-1.06401 .908593-.848817C.908593-.310834 1.279203 .119552 1.853051 .119552C2.952927 .119552 3.383313-1.625903 3.383313-1.709589ZM3.287671-7.460025C3.287671-7.639352 3.144209-7.854545 2.881196-7.854545C2.606227-7.854545 2.295392-7.591532 2.295392-7.280697C2.295392-6.981818 2.546451-6.886177 2.689913-6.886177C3.012702-6.886177 3.287671-7.197011 3.287671-7.460025Z'/>
|
||||
<path id='g0-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g0-110' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-3.514819 4.566874-2.15193 4.327771-1.506351C4.220174-1.219427 4.160399-1.06401 4.160399-.848817C4.160399-.310834 4.531009 .119552 5.104857 .119552C6.216687 .119552 6.635118-1.637858 6.635118-1.709589C6.635118-1.769365 6.587298-1.817186 6.515567-1.817186C6.40797-1.817186 6.396015-1.78132 6.336239-1.578082C6.06127-.597758 5.606974-.119552 5.140722-.119552C5.021171-.119552 4.829888-.131507 4.829888-.514072C4.829888-.812951 4.961395-1.171606 5.033126-1.338979C5.272229-1.996513 5.774346-3.335492 5.774346-4.016936C5.774346-4.734247 5.355915-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.171606-5.272229 .908593-5.045081 .705355-4.638605C.490162-4.208219 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.824907-4.351681 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g0-111' d='M5.451557-3.287671C5.451557-4.423412 4.710336-5.272229 3.622416-5.272229C2.044334-5.272229 .490162-3.550685 .490162-1.865006C.490162-.729265 1.231382 .119552 2.319303 .119552C3.90934 .119552 5.451557-1.601993 5.451557-3.287671ZM2.331258-.119552C1.733499-.119552 1.291158-.597758 1.291158-1.43462C1.291158-1.984558 1.578082-3.203985 1.912827-3.801743C2.450809-4.722291 3.120299-5.033126 3.610461-5.033126C4.196264-5.033126 4.65056-4.554919 4.65056-3.718057C4.65056-3.239851 4.399502-1.960648 3.945205-1.231382C3.455044-.430386 2.797509-.119552 2.331258-.119552Z'/>
|
||||
<path id='g0-112' d='M.514072 1.518306C.430386 1.876961 .382565 1.972603-.107597 1.972603C-.251059 1.972603-.37061 1.972603-.37061 2.199751C-.37061 2.223661-.358655 2.319303-.227148 2.319303C-.071731 2.319303 .095641 2.295392 .251059 2.295392H.765131C1.016189 2.295392 1.625903 2.319303 1.876961 2.319303C1.948692 2.319303 2.092154 2.319303 2.092154 2.10411C2.092154 1.972603 2.008468 1.972603 1.80523 1.972603C1.255293 1.972603 1.219427 1.888917 1.219427 1.793275C1.219427 1.649813 1.75741-.406476 1.829141-.681445C1.960648-.3467 2.283437 .119552 2.905106 .119552C4.25604 .119552 5.71457-1.637858 5.71457-3.395268C5.71457-4.495143 5.092902-5.272229 4.196264-5.272229C3.431133-5.272229 2.785554-4.531009 2.654047-4.363636C2.558406-4.961395 2.092154-5.272229 1.613948-5.272229C1.267248-5.272229 .992279-5.104857 .765131-4.65056C.549938-4.220174 .382565-3.490909 .382565-3.443088S.430386-3.335492 .514072-3.335492C.609714-3.335492 .621669-3.347447 .6934-3.622416C.872727-4.327771 1.099875-5.033126 1.578082-5.033126C1.853051-5.033126 1.948692-4.841843 1.948692-4.483188C1.948692-4.196264 1.912827-4.076712 1.865006-3.861519L.514072 1.518306ZM2.582316-3.730012C2.666002-4.064757 3.000747-4.411457 3.19203-4.578829C3.323537-4.698381 3.718057-5.033126 4.172354-5.033126C4.698381-5.033126 4.937484-4.507098 4.937484-3.88543C4.937484-3.311582 4.60274-1.960648 4.303861-1.338979C4.004981-.6934 3.455044-.119552 2.905106-.119552C2.092154-.119552 1.960648-1.147696 1.960648-1.195517C1.960648-1.231382 1.984558-1.327024 1.996513-1.3868L2.582316-3.730012Z'/>
|
||||
<path id='g0-113' d='M5.272229-5.152677C5.272229-5.212453 5.224408-5.260274 5.164633-5.260274C5.068991-5.260274 4.60274-4.829888 4.375592-4.411457C4.160399-4.94944 3.789788-5.272229 3.275716-5.272229C1.924782-5.272229 .466252-3.526775 .466252-1.75741C.466252-.573848 1.159651 .119552 1.972603 .119552C2.606227 .119552 3.132254-.358655 3.383313-.633624L3.395268-.621669L2.940971 1.171606L2.833375 1.601993C2.725778 1.960648 2.546451 1.960648 1.984558 1.972603C1.853051 1.972603 1.733499 1.972603 1.733499 2.199751C1.733499 2.283437 1.80523 2.319303 1.888917 2.319303C2.056289 2.319303 2.271482 2.295392 2.438854 2.295392H3.658281C3.837609 2.295392 4.040847 2.319303 4.220174 2.319303C4.291905 2.319303 4.435367 2.319303 4.435367 2.092154C4.435367 1.972603 4.339726 1.972603 4.160399 1.972603C3.598506 1.972603 3.56264 1.888917 3.56264 1.793275C3.56264 1.733499 3.574595 1.721544 3.610461 1.566127L5.272229-5.152677ZM3.58655-1.422665C3.526775-1.219427 3.526775-1.195517 3.359402-.968369C3.096389-.633624 2.570361-.119552 2.008468-.119552C1.518306-.119552 1.243337-.561893 1.243337-1.267248C1.243337-1.924782 1.613948-3.263761 1.841096-3.765878C2.247572-4.60274 2.809465-5.033126 3.275716-5.033126C4.064757-5.033126 4.220174-4.052802 4.220174-3.957161C4.220174-3.945205 4.184309-3.789788 4.172354-3.765878L3.58655-1.422665Z'/>
|
||||
<path id='g0-114' d='M4.65056-4.889664C4.27995-4.817933 4.088667-4.554919 4.088667-4.291905C4.088667-4.004981 4.315816-3.90934 4.483188-3.90934C4.817933-3.90934 5.092902-4.196264 5.092902-4.554919C5.092902-4.937484 4.722291-5.272229 4.124533-5.272229C3.646326-5.272229 3.096389-5.057036 2.594271-4.327771C2.510585-4.961395 2.032379-5.272229 1.554172-5.272229C1.08792-5.272229 .848817-4.913574 .705355-4.65056C.502117-4.220174 .32279-3.502864 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.339726 1.0401-5.033126 1.518306-5.033126C1.80523-5.033126 1.888917-4.829888 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.338979 .119552 1.566127 .035866 1.637858-.203238C1.673724-.298879 2.116065-2.10411 2.187796-2.379078C2.247572-2.642092 2.319303-2.893151 2.379078-3.156164C2.426899-3.323537 2.47472-3.514819 2.510585-3.670237C2.546451-3.777833 2.86924-4.363636 3.16812-4.62665C3.311582-4.758157 3.622416-5.033126 4.112578-5.033126C4.303861-5.033126 4.495143-4.99726 4.65056-4.889664Z'/>
|
||||
<path id='g0-115' d='M2.725778-2.391034C2.929016-2.355168 3.251806-2.283437 3.323537-2.271482C3.478954-2.223661 4.016936-2.032379 4.016936-1.458531C4.016936-1.08792 3.682192-.119552 2.295392-.119552C2.044334-.119552 1.147696-.155417 .908593-.812951C1.3868-.753176 1.625903-1.123786 1.625903-1.3868C1.625903-1.637858 1.458531-1.769365 1.219427-1.769365C.956413-1.769365 .609714-1.566127 .609714-1.028144C.609714-.32279 1.327024 .119552 2.283437 .119552C4.100623 .119552 4.638605-1.219427 4.638605-1.841096C4.638605-2.020423 4.638605-2.355168 4.25604-2.737733C3.957161-3.024658 3.670237-3.084433 3.024658-3.21594C2.701868-3.287671 2.187796-3.395268 2.187796-3.93325C2.187796-4.172354 2.402989-5.033126 3.53873-5.033126C4.040847-5.033126 4.531009-4.841843 4.65056-4.411457C4.124533-4.411457 4.100623-3.957161 4.100623-3.945205C4.100623-3.694147 4.327771-3.622416 4.435367-3.622416C4.60274-3.622416 4.937484-3.753923 4.937484-4.25604S4.483188-5.272229 3.550685-5.272229C1.984558-5.272229 1.566127-4.040847 1.566127-3.550685C1.566127-2.642092 2.450809-2.450809 2.725778-2.391034Z'/>
|
||||
<path id='g0-116' d='M2.402989-4.805978H3.502864C3.730012-4.805978 3.849564-4.805978 3.849564-5.021171C3.849564-5.152677 3.777833-5.152677 3.53873-5.152677H2.486675L2.929016-6.898132C2.976837-7.065504 2.976837-7.089415 2.976837-7.173101C2.976837-7.364384 2.82142-7.47198 2.666002-7.47198C2.570361-7.47198 2.295392-7.436115 2.199751-7.053549L1.733499-5.152677H.609714C.37061-5.152677 .263014-5.152677 .263014-4.925529C.263014-4.805978 .3467-4.805978 .573848-4.805978H1.637858L.848817-1.649813C.753176-1.231382 .71731-1.111831 .71731-.956413C.71731-.394521 1.111831 .119552 1.78132 .119552C2.988792 .119552 3.634371-1.625903 3.634371-1.709589C3.634371-1.78132 3.58655-1.817186 3.514819-1.817186C3.490909-1.817186 3.443088-1.817186 3.419178-1.769365C3.407223-1.75741 3.395268-1.745455 3.311582-1.554172C3.060523-.956413 2.510585-.119552 1.817186-.119552C1.458531-.119552 1.43462-.418431 1.43462-.681445C1.43462-.6934 1.43462-.920548 1.470486-1.06401L2.402989-4.805978Z'/>
|
||||
<path id='g0-117' d='M4.076712-.6934C4.23213-.02391 4.805978 .119552 5.092902 .119552C5.475467 .119552 5.762391-.131507 5.953674-.537983C6.156912-.968369 6.312329-1.673724 6.312329-1.709589C6.312329-1.769365 6.264508-1.817186 6.192777-1.817186C6.085181-1.817186 6.073225-1.75741 6.025405-1.578082C5.810212-.753176 5.595019-.119552 5.116812-.119552C4.758157-.119552 4.758157-.514072 4.758157-.669489C4.758157-.944458 4.794022-1.06401 4.913574-1.566127C4.99726-1.888917 5.080946-2.211706 5.152677-2.546451L5.642839-4.495143C5.726526-4.794022 5.726526-4.817933 5.726526-4.853798C5.726526-5.033126 5.583064-5.152677 5.403736-5.152677C5.057036-5.152677 4.97335-4.853798 4.901619-4.554919C4.782067-4.088667 4.136488-1.518306 4.052802-1.099875C4.040847-1.099875 3.574595-.119552 2.701868-.119552C2.080199-.119552 1.960648-.657534 1.960648-1.099875C1.960648-1.78132 2.295392-2.737733 2.606227-3.53873C2.749689-3.921295 2.809465-4.076712 2.809465-4.315816C2.809465-4.829888 2.438854-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.578829 1.374844-5.033126 1.829141-5.033126C1.948692-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.303113-2.10411 1.243337-1.649813 1.243337-1.291158C1.243337-.071731 2.163885 .119552 2.654047 .119552C3.419178 .119552 3.837609-.406476 4.076712-.6934Z'/>
|
||||
<path id='g0-121' d='M3.144209 1.338979C2.82142 1.793275 2.355168 2.199751 1.769365 2.199751C1.625903 2.199751 1.052055 2.175841 .872727 1.625903C.908593 1.637858 .968369 1.637858 .992279 1.637858C1.350934 1.637858 1.590037 1.327024 1.590037 1.052055S1.362889 .681445 1.183562 .681445C.992279 .681445 .573848 .824907 .573848 1.41071C.573848 2.020423 1.08792 2.438854 1.769365 2.438854C2.964882 2.438854 4.172354 1.338979 4.507098 .011955L5.678705-4.65056C5.69066-4.710336 5.71457-4.782067 5.71457-4.853798C5.71457-5.033126 5.571108-5.152677 5.391781-5.152677C5.284184-5.152677 5.033126-5.104857 4.937484-4.746202L4.052802-1.231382C3.993026-1.016189 3.993026-.992279 3.897385-.860772C3.658281-.526027 3.263761-.119552 2.689913-.119552C2.020423-.119552 1.960648-.777086 1.960648-1.099875C1.960648-1.78132 2.283437-2.701868 2.606227-3.56264C2.737733-3.90934 2.809465-4.076712 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.033126 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.243337-1.960648 1.243337-1.566127 1.243337-1.279203C1.243337-.143462 2.056289 .119552 2.654047 .119552C3.000747 .119552 3.431133 .011955 3.849564-.430386L3.861519-.418431C3.682192 .286924 3.56264 .753176 3.144209 1.338979Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -64.41)'>
|
||||
<use x='56.413267' y='65.753425' xlink:href='#g0-109'/>
|
||||
<use x='66.652534' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='72.077974' y='65.753425' xlink:href='#g0-109'/>
|
||||
<use x='82.317241' y='65.753425' xlink:href='#g0-111'/>
|
||||
<use x='87.944679' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='93.545152' y='65.753425' xlink:href='#g0-121'/>
|
||||
<use x='99.681804' y='65.753425' xlink:href='#g0-58'/>
|
||||
<use x='102.933465' y='65.753425' xlink:href='#g0-109'/>
|
||||
<use x='113.172732' y='65.753425' xlink:href='#g0-105'/>
|
||||
<use x='117.166164' y='65.753425' xlink:href='#g0-110'/>
|
||||
<use x='127.474599' y='65.753425' xlink:href='#g1-61'/>
|
||||
<use x='139.90008' y='65.753425' xlink:href='#g0-112'/>
|
||||
<use x='145.775223' y='65.753425' xlink:href='#g0-111'/>
|
||||
<use x='151.402661' y='65.753425' xlink:href='#g0-100'/>
|
||||
<use x='157.485354' y='65.753425' xlink:href='#g0-58'/>
|
||||
<use x='160.737015' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='166.251021' y='65.753425' xlink:href='#g0-112'/>
|
||||
<use x='172.126164' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='177.551604' y='65.753425' xlink:href='#g0-99'/>
|
||||
<use x='182.589592' y='65.753425' xlink:href='#g0-58'/>
|
||||
<use x='185.841254' y='65.753425' xlink:href='#g0-99'/>
|
||||
<use x='190.879242' y='65.753425' xlink:href='#g0-111'/>
|
||||
<use x='196.50668' y='65.753425' xlink:href='#g0-110'/>
|
||||
<use x='203.494285' y='65.753425' xlink:href='#g0-116'/>
|
||||
<use x='207.721445' y='65.753425' xlink:href='#g0-97'/>
|
||||
<use x='213.866389' y='65.753425' xlink:href='#g0-105'/>
|
||||
<use x='217.859822' y='65.753425' xlink:href='#g0-110'/>
|
||||
<use x='224.847427' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='230.272867' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='235.873341' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='241.387347' y='65.753425' xlink:href='#g1-91'/>
|
||||
<use x='244.639008' y='65.753425' xlink:href='#g0-105'/>
|
||||
<use x='248.63244' y='65.753425' xlink:href='#g1-93'/>
|
||||
<use x='251.884101' y='65.753425' xlink:href='#g0-58'/>
|
||||
<use x='255.135763' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='260.736236' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='266.161676' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='271.675682' y='65.753425' xlink:href='#g0-111'/>
|
||||
<use x='277.303119' y='65.753425' xlink:href='#g0-117'/>
|
||||
<use x='283.965559' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='289.566032' y='65.753425' xlink:href='#g0-99'/>
|
||||
<use x='294.604021' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='300.029461' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='305.543467' y='65.753425' xlink:href='#g0-58'/>
|
||||
<use x='308.795128' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='314.395601' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='319.821042' y='65.753425' xlink:href='#g0-113'/>
|
||||
<use x='325.440198' y='65.753425' xlink:href='#g0-117'/>
|
||||
<use x='332.102638' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='337.528078' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='343.042083' y='65.753425' xlink:href='#g0-116'/>
|
||||
<use x='347.269243' y='65.753425' xlink:href='#g0-115'/>
|
||||
<use x='352.783249' y='65.753425' xlink:href='#g1-91'/>
|
||||
<use x='356.03491' y='65.753425' xlink:href='#g0-109'/>
|
||||
<use x='366.274177' y='65.753425' xlink:href='#g0-101'/>
|
||||
<use x='371.699617' y='65.753425' xlink:href='#g0-109'/>
|
||||
<use x='381.938884' y='65.753425' xlink:href='#g0-111'/>
|
||||
<use x='387.566322' y='65.753425' xlink:href='#g0-114'/>
|
||||
<use x='393.166795' y='65.753425' xlink:href='#g0-121'/>
|
||||
<use x='399.303447' y='65.753425' xlink:href='#g1-93'/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 23 KiB |
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
layout: blog
|
||||
title: 'Quality-of-Service for Memory Resources'
|
||||
date: 2021-11-26
|
||||
slug: qos-memory-resources
|
||||
---
|
||||
|
||||
**Authors:** Tim Xu (Tencent Cloud)
|
||||
|
||||
Kubernetes v1.22, released in August 2021, introduced a new alpha feature that improves how Linux nodes implement memory resource requests and limits.
|
||||
|
||||
In prior releases, Kubernetes did not support memory quality guarantees.
|
||||
For example, if you set container resources as follows:
|
||||
```
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: example
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "64Mi"
|
||||
cpu: "500m"
|
||||
```
|
||||
`spec.containers[].resources.requests`(e.g. cpu, memory) is designed for scheduling. When you create a Pod, the Kubernetes scheduler selects a node for the Pod to run on. Each node has a maximum capacity for each of the resource types: the amount of CPU and memory it can provide for Pods. The scheduler ensures that, for each resource type, the sum of the resource requests of the scheduled Containers is less than the capacity of the node.
|
||||
|
||||
`spec.containers[].resources.limits` is passed to the container runtime when the kubelet starts a container. CPU is considered a "compressible" resource. If your app starts hitting your CPU limits, Kubernetes starts throttling your container, giving your app potentially worse performance. However, it won’t be terminated. That is what "compressible" means.
|
||||
|
||||
In cgroup v1, and prior to this feature, the container runtime never took into account and effectively ignored spec.containers[].resources.requests["memory"]. This is unlike CPU, in which the container runtime consider both requests and limits. Furthermore, memory actually can't be compressed in cgroup v1. Because there is no way to throttle memory usage, if a container goes past its memory limit it will be terminated by the kernel with an OOM (Out of Memory) kill.
|
||||
|
||||
Fortunately, cgroup v2 brings a new design and implementation to achieve full protection on memory. The new feature relies on cgroups v2 which most current operating system releases for Linux already provide. With this experimental feature, [quality-of-service for pods and containers](/docs/tasks/configure-pod-container/quality-service-pod/) extends to cover not just CPU time but memory as well.
|
||||
|
||||
## How does it work?
|
||||
Memory QoS uses the memory controller of cgroup v2 to guarantee memory resources in Kubernetes. Memory requests and limits of containers in pod are used to set specific interfaces `memory.min` and `memory.high` provided by the memory controller. When `memory.min` is set to memory requests, memory resources are reserved and never reclaimed by the kernel; this is how Memory QoS ensures the availability of memory for Kubernetes pods. And if memory limits are set in the container, this means that the system needs to limit container memory usage, Memory QoS uses `memory.high` to throttle workload approaching it's memory limit, ensuring that the system is not overwhelmed by instantaneous memory allocation.
|
||||
|
||||
![](./memory-qos-cal.svg)
|
||||
|
||||
The following table details the specific functions of these two parameters and how they correspond to Kubernetes container resources.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th style="text-align:center">File</th>
|
||||
<th style="text-align:center">Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>memory.min</td>
|
||||
<td><code>memory.min</code> specifies a minimum amount of memory the cgroup must always retain, i.e., memory that can never be reclaimed by the system. If the cgroup's memory usage reaches this low limit and can’t be increased, the system OOM killer will be invoked.
|
||||
<br>
|
||||
<br>
|
||||
<i>We map it to the container's memory request</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>memory.high</td>
|
||||
<td><code>memory.high</code> is the memory usage throttle limit. This is the main mechanism to control a cgroup's memory use. If a cgroup's memory use goes over the high boundary specified here, the cgroup’s processes are throttled and put under heavy reclaim pressure. The default is max, meaning there is no limit.
|
||||
<br>
|
||||
<br>
|
||||
<i>We use a formula to calculate <code>memory.high</code>, depending on container's memory limit or node allocatable memory (if container's memory limit is empty) and a throttling factor. Please refer to the KEP for more details on the formula.</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
When container memory requests are made, kubelet passes `memory.min` to the back-end CRI runtime (possibly containerd, cri-o) via the `Unified` field in CRI during container creation. The `memory.min` in container level cgroup will be set to:
|
||||
|
||||
![](./container-memory-min.svg)
|
||||
<sub>i: the i<sup>th</sup> container in one pod</sub>
|
||||
|
||||
Since the `memory.min` interface requires that the ancestor cgroup directories are all set, the pod and node cgroup directories need to be set correctly.
|
||||
|
||||
`memory.min` in pod level cgroup:
|
||||
![](./pod-memory-min.svg)
|
||||
<sub>i: the i<sup>th</sup> container in one pod</sub>
|
||||
|
||||
`memory.min` in node level cgroup:
|
||||
![](./node-memory-min.svg)
|
||||
<sub>i: the i<sup>th</sup> pod in one node, j: the j<sup>th</sup> container in one pod</sub>
|
||||
|
||||
Kubelet will manage the cgroup hierarchy of the pod level and node level cgroups directly using runc libcontainer library, while container cgroup limits are managed by the container runtime.
|
||||
|
||||
For memory limits, in addition to the original way of limiting memory usage, Memory QoS adds an additional feature of throttling memory allocation. A throttling factor is introduced as a multiplier (default is 0.8). If the result of multiplying memory limits by the factor is greater than memory requests, kubelet will set `memory.high` to the value and use `Unified` via CRI. And if the container does not specify memory limits, kubelet will use node allocatable memory instead. The `memory.high` in container level cgroup is set to:
|
||||
|
||||
![](./container-memory-high.svg)
|
||||
<sub>i: the i<sup>th</sup> container in one pod</sub>
|
||||
|
||||
This can can help improve stability when pod memory usage increases, ensuring that memory is throttled as it approaches the memory limit.
|
||||
|
||||
## How do I use it?
|
||||
Here are the prerequisites for enabling Memory QoS on your Linux node, some of these are related to [Kubernetes support for cgroup v2](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2254-cgroup-v2).
|
||||
|
||||
1. Kubernetes since v1.22
|
||||
2. [runc](https://github.com/opencontainers/runc) since v1.0.0-rc93; [containerd](https://containerd.io/) since 1.4; [cri-o](https://cri-o.io/) since 1.20
|
||||
3. Linux kernel minimum version: 4.15, recommended version: 5.2+
|
||||
4. Linux image with cgroupv2 enabled or enabling cgroupv2 unified_cgroup_hierarchy manually
|
||||
|
||||
OCI runtimes such as runc and crun already support cgroups v2 [`Unified`](https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified), and Kubernetes CRI has also made the desired changes to support passing [`Unified`](https://github.com/kubernetes/kubernetes/pull/102578). However, CRI Runtime support is required as well. Memory QoS in Alpha phase is designed to support containerd and cri-o. Related PR [Feature: containerd-cri support LinuxContainerResources.Unified #5627](https://github.com/containerd/containerd/pull/5627) has been merged and will be released in containerd 1.6. CRI-O [implement kube alpha features for 1.22 #5207](https://github.com/cri-o/cri-o/pull/5207) is still in WIP.
|
||||
|
||||
With those prerequisites met, you can enable the memory QoS feature gate (see [Set kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/)).
|
||||
|
||||
## How can I learn more?
|
||||
|
||||
You can find more details as follows:
|
||||
- [Support Memory QoS with cgroup v2](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2570-memory-qos/#readme)
|
||||
- [cgroup v2](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2254-cgroup-v2/#readme)
|
||||
|
||||
## How do I get involved?
|
||||
You can reach SIG Node by several means:
|
||||
- Slack: [#sig-node](https://kubernetes.slack.com/messages/sig-node)
|
||||
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-node)
|
||||
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/sig%2Fnode)
|
||||
|
||||
You can also contact me directly:
|
||||
- GitHub / Slack: @xiaoxubeii
|
||||
- Email: xiaoxubeii@gmail.com
|
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 63 KiB |
|
@ -0,0 +1,98 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='446.671233pt' height='30.306891pt' viewBox='-.239051 -.248234 446.671233 30.306891'>
|
||||
<defs>
|
||||
<path id='g0-88' d='M15.135243 16.737235L16.581818 12.911582H16.282939C15.816687 14.154919 14.54944 14.96787 13.174595 15.326526C12.923537 15.386301 11.75193 15.697136 9.456538 15.697136H2.247572L8.332752 8.5599C8.416438 8.464259 8.440349 8.428394 8.440349 8.368618C8.440349 8.344707 8.440349 8.308842 8.356663 8.18929L2.785554 .573848H9.336986C10.938979 .573848 12.026899 .74122 12.134496 .765131C12.780075 .860772 13.820174 1.06401 14.764633 1.661768C15.063512 1.853051 15.876463 2.391034 16.282939 3.359402H16.581818L15.135243 0H1.004234C.729265 0 .71731 .011955 .681445 .083686C.669489 .119552 .669489 .3467 .669489 .478207L6.993773 9.133748L.800996 16.390535C.681445 16.533998 .681445 16.593773 .681445 16.605729C.681445 16.737235 .789041 16.737235 1.004234 16.737235H15.135243Z'/>
|
||||
<path id='g1-105' d='M2.375093-4.97335C2.375093-5.148692 2.247572-5.276214 2.064259-5.276214C1.857036-5.276214 1.625903-5.084932 1.625903-4.845828C1.625903-4.670486 1.753425-4.542964 1.936737-4.542964C2.14396-4.542964 2.375093-4.734247 2.375093-4.97335ZM1.211457-2.048319L.781071-.948443C.74122-.828892 .70137-.73325 .70137-.597758C.70137-.207223 1.004234 .079701 1.42665 .079701C2.199751 .079701 2.526526-1.036115 2.526526-1.139726C2.526526-1.219427 2.462765-1.243337 2.406974-1.243337C2.311333-1.243337 2.295392-1.187547 2.271482-1.107846C2.088169-.470237 1.761395-.143462 1.44259-.143462C1.346949-.143462 1.251308-.183313 1.251308-.398506C1.251308-.589788 1.307098-.73325 1.41071-.980324C1.490411-1.195517 1.570112-1.41071 1.657783-1.625903L1.904857-2.271482C1.976588-2.454795 2.072229-2.701868 2.072229-2.83736C2.072229-3.235866 1.753425-3.514819 1.346949-3.514819C.573848-3.514819 .239103-2.399004 .239103-2.295392C.239103-2.223661 .294894-2.191781 .358655-2.191781C.462267-2.191781 .470237-2.239601 .494147-2.319303C.71731-3.076463 1.083935-3.291656 1.323039-3.291656C1.43462-3.291656 1.514321-3.251806 1.514321-3.028643C1.514321-2.948941 1.506351-2.83736 1.42665-2.598257L1.211457-2.048319Z'/>
|
||||
<path id='g1-106' d='M3.291656-4.97335C3.291656-5.124782 3.172105-5.276214 2.980822-5.276214C2.741719-5.276214 2.534496-5.053051 2.534496-4.845828C2.534496-4.694396 2.654047-4.542964 2.84533-4.542964C3.084433-4.542964 3.291656-4.766127 3.291656-4.97335ZM1.625903 .398506C1.506351 .884682 1.115816 1.40274 .629639 1.40274C.502117 1.40274 .382565 1.370859 .366625 1.362889C.613699 1.243337 .645579 1.028144 .645579 .956413C.645579 .765131 .502117 .661519 .334745 .661519C.103611 .661519-.111582 .860772-.111582 1.123786C-.111582 1.42665 .183313 1.625903 .637609 1.625903C1.123786 1.625903 2.000498 1.323039 2.239601 .366625L2.956912-2.486675C2.980822-2.582316 2.996762-2.646077 2.996762-2.765629C2.996762-3.203985 2.646077-3.514819 2.183811-3.514819C1.338979-3.514819 .844832-2.399004 .844832-2.295392C.844832-2.223661 .900623-2.191781 .964384-2.191781C1.052055-2.191781 1.060025-2.215691 1.115816-2.335243C1.354919-2.885181 1.761395-3.291656 2.1599-3.291656C2.327273-3.291656 2.422914-3.180075 2.422914-2.917061C2.422914-2.805479 2.399004-2.693898 2.375093-2.582316L1.625903 .398506Z'/>
|
||||
<path id='g3-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>
|
||||
<path id='g3-91' d='M2.988792 2.988792V2.546451H1.829141V-8.524035H2.988792V-8.966376H1.3868V2.988792H2.988792Z'/>
|
||||
<path id='g3-93' d='M1.853051-8.966376H.251059V-8.524035H1.41071V2.546451H.251059V2.988792H1.853051V-8.966376Z'/>
|
||||
<path id='g2-58' d='M2.199751-.573848C2.199751-.920548 1.912827-1.159651 1.625903-1.159651C1.279203-1.159651 1.0401-.872727 1.0401-.585803C1.0401-.239103 1.327024 0 1.613948 0C1.960648 0 2.199751-.286924 2.199751-.573848Z'/>
|
||||
<path id='g2-97' d='M3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665ZM4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.944458 4.27995-1.075965 4.387547-1.542217C4.471233-1.841096 4.531009-2.10411 4.62665-2.450809C5.068991-4.244085 5.176588-4.674471 5.176588-4.746202C5.176588-4.913574 5.045081-5.045081 4.865753-5.045081C4.483188-5.045081 4.387547-4.62665 4.363636-4.483188Z'/>
|
||||
<path id='g2-99' d='M4.674471-4.495143C4.447323-4.495143 4.339726-4.495143 4.172354-4.351681C4.100623-4.291905 3.969116-4.112578 3.969116-3.921295C3.969116-3.682192 4.148443-3.53873 4.375592-3.53873C4.662516-3.53873 4.985305-3.777833 4.985305-4.25604C4.985305-4.829888 4.435367-5.272229 3.610461-5.272229C2.044334-5.272229 .478207-3.56264 .478207-1.865006C.478207-.824907 1.123786 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.542217-.119552 1.279203-.836862 1.279203-1.43462C1.279203-1.853051 1.482441-3.012702 1.912827-3.825654C2.223661-4.387547 2.86924-5.033126 3.622416-5.033126C3.777833-5.033126 4.435367-5.009215 4.674471-4.495143Z'/>
|
||||
<path id='g2-100' d='M6.01345-7.998007C6.025405-8.045828 6.049315-8.117559 6.049315-8.177335C6.049315-8.296887 5.929763-8.296887 5.905853-8.296887C5.893898-8.296887 5.308095-8.249066 5.248319-8.237111C5.045081-8.225156 4.865753-8.201245 4.65056-8.18929C4.351681-8.16538 4.267995-8.153425 4.267995-7.938232C4.267995-7.81868 4.363636-7.81868 4.531009-7.81868C5.116812-7.81868 5.128767-7.711083 5.128767-7.591532C5.128767-7.519801 5.104857-7.424159 5.092902-7.388294L4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.71731 4.244085-.968369 4.327771-1.303113L6.01345-7.998007ZM3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665Z'/>
|
||||
<path id='g2-101' d='M2.139975-2.773599C2.462765-2.773599 3.275716-2.797509 3.849564-3.012702C4.758157-3.359402 4.841843-4.052802 4.841843-4.267995C4.841843-4.794022 4.387547-5.272229 3.598506-5.272229C2.343213-5.272229 .537983-4.136488 .537983-2.008468C.537983-.753176 1.255293 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.685679-.119552 1.327024-.657534 1.327024-1.542217C1.327024-1.709589 1.327024-2.008468 1.506351-2.773599H2.139975ZM1.566127-3.012702C2.080199-4.853798 3.21594-5.033126 3.598506-5.033126C4.124533-5.033126 4.483188-4.722291 4.483188-4.267995C4.483188-3.012702 2.570361-3.012702 2.068244-3.012702H1.566127Z'/>
|
||||
<path id='g2-105' d='M3.383313-1.709589C3.383313-1.769365 3.335492-1.817186 3.263761-1.817186C3.156164-1.817186 3.144209-1.78132 3.084433-1.578082C2.773599-.490162 2.283437-.119552 1.888917-.119552C1.745455-.119552 1.578082-.155417 1.578082-.514072C1.578082-.836862 1.721544-1.195517 1.853051-1.554172L2.689913-3.777833C2.725778-3.873474 2.809465-4.088667 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 1.984558-3.93325 1.888917-3.670237L1.052055-1.446575C.980324-1.255293 .908593-1.06401 .908593-.848817C.908593-.310834 1.279203 .119552 1.853051 .119552C2.952927 .119552 3.383313-1.625903 3.383313-1.709589ZM3.287671-7.460025C3.287671-7.639352 3.144209-7.854545 2.881196-7.854545C2.606227-7.854545 2.295392-7.591532 2.295392-7.280697C2.295392-6.981818 2.546451-6.886177 2.689913-6.886177C3.012702-6.886177 3.287671-7.197011 3.287671-7.460025Z'/>
|
||||
<path id='g2-106' d='M4.184309-3.789788C4.23213-3.981071 4.23213-4.148443 4.23213-4.196264C4.23213-4.889664 3.718057-5.272229 3.180075-5.272229C1.972603-5.272229 1.327024-3.526775 1.327024-3.443088C1.327024-3.383313 1.374844-3.335492 1.446575-3.335492C1.542217-3.335492 1.554172-3.383313 1.613948-3.502864C2.092154-4.662516 2.689913-5.033126 3.144209-5.033126C3.395268-5.033126 3.526775-4.901619 3.526775-4.483188C3.526775-4.196264 3.490909-4.076712 3.443088-3.861519L2.307347 .645579C2.080199 1.530262 1.518306 2.199751 .860772 2.199751C.812951 2.199751 .561893 2.199751 .334745 2.080199C.621669 2.020423 .848817 1.793275 .848817 1.506351C.848817 1.315068 .705355 1.123786 .442341 1.123786C.131507 1.123786-.155417 1.3868-.155417 1.745455C-.155417 2.235616 .37061 2.438854 .860772 2.438854C1.685679 2.438854 2.773599 1.829141 3.072478 .633624L4.184309-3.789788ZM4.674471-7.460025C4.674471-7.758904 4.423412-7.854545 4.27995-7.854545C3.957161-7.854545 3.682192-7.543711 3.682192-7.280697C3.682192-7.10137 3.825654-6.886177 4.088667-6.886177C4.363636-6.886177 4.674471-7.149191 4.674471-7.460025Z'/>
|
||||
<path id='g2-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g2-110' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-3.514819 4.566874-2.15193 4.327771-1.506351C4.220174-1.219427 4.160399-1.06401 4.160399-.848817C4.160399-.310834 4.531009 .119552 5.104857 .119552C6.216687 .119552 6.635118-1.637858 6.635118-1.709589C6.635118-1.769365 6.587298-1.817186 6.515567-1.817186C6.40797-1.817186 6.396015-1.78132 6.336239-1.578082C6.06127-.597758 5.606974-.119552 5.140722-.119552C5.021171-.119552 4.829888-.131507 4.829888-.514072C4.829888-.812951 4.961395-1.171606 5.033126-1.338979C5.272229-1.996513 5.774346-3.335492 5.774346-4.016936C5.774346-4.734247 5.355915-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.171606-5.272229 .908593-5.045081 .705355-4.638605C.490162-4.208219 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.824907-4.351681 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g2-111' d='M5.451557-3.287671C5.451557-4.423412 4.710336-5.272229 3.622416-5.272229C2.044334-5.272229 .490162-3.550685 .490162-1.865006C.490162-.729265 1.231382 .119552 2.319303 .119552C3.90934 .119552 5.451557-1.601993 5.451557-3.287671ZM2.331258-.119552C1.733499-.119552 1.291158-.597758 1.291158-1.43462C1.291158-1.984558 1.578082-3.203985 1.912827-3.801743C2.450809-4.722291 3.120299-5.033126 3.610461-5.033126C4.196264-5.033126 4.65056-4.554919 4.65056-3.718057C4.65056-3.239851 4.399502-1.960648 3.945205-1.231382C3.455044-.430386 2.797509-.119552 2.331258-.119552Z'/>
|
||||
<path id='g2-112' d='M.514072 1.518306C.430386 1.876961 .382565 1.972603-.107597 1.972603C-.251059 1.972603-.37061 1.972603-.37061 2.199751C-.37061 2.223661-.358655 2.319303-.227148 2.319303C-.071731 2.319303 .095641 2.295392 .251059 2.295392H.765131C1.016189 2.295392 1.625903 2.319303 1.876961 2.319303C1.948692 2.319303 2.092154 2.319303 2.092154 2.10411C2.092154 1.972603 2.008468 1.972603 1.80523 1.972603C1.255293 1.972603 1.219427 1.888917 1.219427 1.793275C1.219427 1.649813 1.75741-.406476 1.829141-.681445C1.960648-.3467 2.283437 .119552 2.905106 .119552C4.25604 .119552 5.71457-1.637858 5.71457-3.395268C5.71457-4.495143 5.092902-5.272229 4.196264-5.272229C3.431133-5.272229 2.785554-4.531009 2.654047-4.363636C2.558406-4.961395 2.092154-5.272229 1.613948-5.272229C1.267248-5.272229 .992279-5.104857 .765131-4.65056C.549938-4.220174 .382565-3.490909 .382565-3.443088S.430386-3.335492 .514072-3.335492C.609714-3.335492 .621669-3.347447 .6934-3.622416C.872727-4.327771 1.099875-5.033126 1.578082-5.033126C1.853051-5.033126 1.948692-4.841843 1.948692-4.483188C1.948692-4.196264 1.912827-4.076712 1.865006-3.861519L.514072 1.518306ZM2.582316-3.730012C2.666002-4.064757 3.000747-4.411457 3.19203-4.578829C3.323537-4.698381 3.718057-5.033126 4.172354-5.033126C4.698381-5.033126 4.937484-4.507098 4.937484-3.88543C4.937484-3.311582 4.60274-1.960648 4.303861-1.338979C4.004981-.6934 3.455044-.119552 2.905106-.119552C2.092154-.119552 1.960648-1.147696 1.960648-1.195517C1.960648-1.231382 1.984558-1.327024 1.996513-1.3868L2.582316-3.730012Z'/>
|
||||
<path id='g2-113' d='M5.272229-5.152677C5.272229-5.212453 5.224408-5.260274 5.164633-5.260274C5.068991-5.260274 4.60274-4.829888 4.375592-4.411457C4.160399-4.94944 3.789788-5.272229 3.275716-5.272229C1.924782-5.272229 .466252-3.526775 .466252-1.75741C.466252-.573848 1.159651 .119552 1.972603 .119552C2.606227 .119552 3.132254-.358655 3.383313-.633624L3.395268-.621669L2.940971 1.171606L2.833375 1.601993C2.725778 1.960648 2.546451 1.960648 1.984558 1.972603C1.853051 1.972603 1.733499 1.972603 1.733499 2.199751C1.733499 2.283437 1.80523 2.319303 1.888917 2.319303C2.056289 2.319303 2.271482 2.295392 2.438854 2.295392H3.658281C3.837609 2.295392 4.040847 2.319303 4.220174 2.319303C4.291905 2.319303 4.435367 2.319303 4.435367 2.092154C4.435367 1.972603 4.339726 1.972603 4.160399 1.972603C3.598506 1.972603 3.56264 1.888917 3.56264 1.793275C3.56264 1.733499 3.574595 1.721544 3.610461 1.566127L5.272229-5.152677ZM3.58655-1.422665C3.526775-1.219427 3.526775-1.195517 3.359402-.968369C3.096389-.633624 2.570361-.119552 2.008468-.119552C1.518306-.119552 1.243337-.561893 1.243337-1.267248C1.243337-1.924782 1.613948-3.263761 1.841096-3.765878C2.247572-4.60274 2.809465-5.033126 3.275716-5.033126C4.064757-5.033126 4.220174-4.052802 4.220174-3.957161C4.220174-3.945205 4.184309-3.789788 4.172354-3.765878L3.58655-1.422665Z'/>
|
||||
<path id='g2-114' d='M4.65056-4.889664C4.27995-4.817933 4.088667-4.554919 4.088667-4.291905C4.088667-4.004981 4.315816-3.90934 4.483188-3.90934C4.817933-3.90934 5.092902-4.196264 5.092902-4.554919C5.092902-4.937484 4.722291-5.272229 4.124533-5.272229C3.646326-5.272229 3.096389-5.057036 2.594271-4.327771C2.510585-4.961395 2.032379-5.272229 1.554172-5.272229C1.08792-5.272229 .848817-4.913574 .705355-4.65056C.502117-4.220174 .32279-3.502864 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.339726 1.0401-5.033126 1.518306-5.033126C1.80523-5.033126 1.888917-4.829888 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.338979 .119552 1.566127 .035866 1.637858-.203238C1.673724-.298879 2.116065-2.10411 2.187796-2.379078C2.247572-2.642092 2.319303-2.893151 2.379078-3.156164C2.426899-3.323537 2.47472-3.514819 2.510585-3.670237C2.546451-3.777833 2.86924-4.363636 3.16812-4.62665C3.311582-4.758157 3.622416-5.033126 4.112578-5.033126C4.303861-5.033126 4.495143-4.99726 4.65056-4.889664Z'/>
|
||||
<path id='g2-115' d='M2.725778-2.391034C2.929016-2.355168 3.251806-2.283437 3.323537-2.271482C3.478954-2.223661 4.016936-2.032379 4.016936-1.458531C4.016936-1.08792 3.682192-.119552 2.295392-.119552C2.044334-.119552 1.147696-.155417 .908593-.812951C1.3868-.753176 1.625903-1.123786 1.625903-1.3868C1.625903-1.637858 1.458531-1.769365 1.219427-1.769365C.956413-1.769365 .609714-1.566127 .609714-1.028144C.609714-.32279 1.327024 .119552 2.283437 .119552C4.100623 .119552 4.638605-1.219427 4.638605-1.841096C4.638605-2.020423 4.638605-2.355168 4.25604-2.737733C3.957161-3.024658 3.670237-3.084433 3.024658-3.21594C2.701868-3.287671 2.187796-3.395268 2.187796-3.93325C2.187796-4.172354 2.402989-5.033126 3.53873-5.033126C4.040847-5.033126 4.531009-4.841843 4.65056-4.411457C4.124533-4.411457 4.100623-3.957161 4.100623-3.945205C4.100623-3.694147 4.327771-3.622416 4.435367-3.622416C4.60274-3.622416 4.937484-3.753923 4.937484-4.25604S4.483188-5.272229 3.550685-5.272229C1.984558-5.272229 1.566127-4.040847 1.566127-3.550685C1.566127-2.642092 2.450809-2.450809 2.725778-2.391034Z'/>
|
||||
<path id='g2-116' d='M2.402989-4.805978H3.502864C3.730012-4.805978 3.849564-4.805978 3.849564-5.021171C3.849564-5.152677 3.777833-5.152677 3.53873-5.152677H2.486675L2.929016-6.898132C2.976837-7.065504 2.976837-7.089415 2.976837-7.173101C2.976837-7.364384 2.82142-7.47198 2.666002-7.47198C2.570361-7.47198 2.295392-7.436115 2.199751-7.053549L1.733499-5.152677H.609714C.37061-5.152677 .263014-5.152677 .263014-4.925529C.263014-4.805978 .3467-4.805978 .573848-4.805978H1.637858L.848817-1.649813C.753176-1.231382 .71731-1.111831 .71731-.956413C.71731-.394521 1.111831 .119552 1.78132 .119552C2.988792 .119552 3.634371-1.625903 3.634371-1.709589C3.634371-1.78132 3.58655-1.817186 3.514819-1.817186C3.490909-1.817186 3.443088-1.817186 3.419178-1.769365C3.407223-1.75741 3.395268-1.745455 3.311582-1.554172C3.060523-.956413 2.510585-.119552 1.817186-.119552C1.458531-.119552 1.43462-.418431 1.43462-.681445C1.43462-.6934 1.43462-.920548 1.470486-1.06401L2.402989-4.805978Z'/>
|
||||
<path id='g2-117' d='M4.076712-.6934C4.23213-.02391 4.805978 .119552 5.092902 .119552C5.475467 .119552 5.762391-.131507 5.953674-.537983C6.156912-.968369 6.312329-1.673724 6.312329-1.709589C6.312329-1.769365 6.264508-1.817186 6.192777-1.817186C6.085181-1.817186 6.073225-1.75741 6.025405-1.578082C5.810212-.753176 5.595019-.119552 5.116812-.119552C4.758157-.119552 4.758157-.514072 4.758157-.669489C4.758157-.944458 4.794022-1.06401 4.913574-1.566127C4.99726-1.888917 5.080946-2.211706 5.152677-2.546451L5.642839-4.495143C5.726526-4.794022 5.726526-4.817933 5.726526-4.853798C5.726526-5.033126 5.583064-5.152677 5.403736-5.152677C5.057036-5.152677 4.97335-4.853798 4.901619-4.554919C4.782067-4.088667 4.136488-1.518306 4.052802-1.099875C4.040847-1.099875 3.574595-.119552 2.701868-.119552C2.080199-.119552 1.960648-.657534 1.960648-1.099875C1.960648-1.78132 2.295392-2.737733 2.606227-3.53873C2.749689-3.921295 2.809465-4.076712 2.809465-4.315816C2.809465-4.829888 2.438854-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.578829 1.374844-5.033126 1.829141-5.033126C1.948692-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.303113-2.10411 1.243337-1.649813 1.243337-1.291158C1.243337-.071731 2.163885 .119552 2.654047 .119552C3.419178 .119552 3.837609-.406476 4.076712-.6934Z'/>
|
||||
<path id='g2-121' d='M3.144209 1.338979C2.82142 1.793275 2.355168 2.199751 1.769365 2.199751C1.625903 2.199751 1.052055 2.175841 .872727 1.625903C.908593 1.637858 .968369 1.637858 .992279 1.637858C1.350934 1.637858 1.590037 1.327024 1.590037 1.052055S1.362889 .681445 1.183562 .681445C.992279 .681445 .573848 .824907 .573848 1.41071C.573848 2.020423 1.08792 2.438854 1.769365 2.438854C2.964882 2.438854 4.172354 1.338979 4.507098 .011955L5.678705-4.65056C5.69066-4.710336 5.71457-4.782067 5.71457-4.853798C5.71457-5.033126 5.571108-5.152677 5.391781-5.152677C5.284184-5.152677 5.033126-5.104857 4.937484-4.746202L4.052802-1.231382C3.993026-1.016189 3.993026-.992279 3.897385-.860772C3.658281-.526027 3.263761-.119552 2.689913-.119552C2.020423-.119552 1.960648-.777086 1.960648-1.099875C1.960648-1.78132 2.283437-2.701868 2.606227-3.56264C2.737733-3.90934 2.809465-4.076712 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.033126 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.243337-1.960648 1.243337-1.566127 1.243337-1.279203C1.243337-.143462 2.056289 .119552 2.654047 .119552C3.000747 .119552 3.431133 .011955 3.849564-.430386L3.861519-.418431C3.682192 .286924 3.56264 .753176 3.144209 1.338979Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -66.444003)'>
|
||||
<use x='56.413267' y='69.937791' xlink:href='#g2-109'/>
|
||||
<use x='66.652534' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='72.077974' y='69.937791' xlink:href='#g2-109'/>
|
||||
<use x='82.317241' y='69.937791' xlink:href='#g2-111'/>
|
||||
<use x='87.944679' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='93.545152' y='69.937791' xlink:href='#g2-121'/>
|
||||
<use x='99.681804' y='69.937791' xlink:href='#g2-58'/>
|
||||
<use x='102.933465' y='69.937791' xlink:href='#g2-109'/>
|
||||
<use x='113.172732' y='69.937791' xlink:href='#g2-105'/>
|
||||
<use x='117.166164' y='69.937791' xlink:href='#g2-110'/>
|
||||
<use x='127.474599' y='69.937791' xlink:href='#g3-61'/>
|
||||
<use x='139.90008' y='58.580327' xlink:href='#g0-88'/>
|
||||
<use x='147.092819' y='83.774682' xlink:href='#g1-105'/>
|
||||
<use x='159.161195' y='58.580327' xlink:href='#g0-88'/>
|
||||
<use x='165.85349' y='83.774682' xlink:href='#g1-106'/>
|
||||
<use x='178.422309' y='69.937791' xlink:href='#g2-112'/>
|
||||
<use x='184.297452' y='69.937791' xlink:href='#g2-111'/>
|
||||
<use x='189.92489' y='69.937791' xlink:href='#g2-100'/>
|
||||
<use x='196.007582' y='69.937791' xlink:href='#g3-91'/>
|
||||
<use x='199.259244' y='69.937791' xlink:href='#g2-105'/>
|
||||
<use x='203.252676' y='69.937791' xlink:href='#g3-93'/>
|
||||
<use x='206.504337' y='69.937791' xlink:href='#g2-58'/>
|
||||
<use x='209.755998' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='215.270004' y='69.937791' xlink:href='#g2-112'/>
|
||||
<use x='221.145147' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='226.570587' y='69.937791' xlink:href='#g2-99'/>
|
||||
<use x='231.608576' y='69.937791' xlink:href='#g2-58'/>
|
||||
<use x='234.860237' y='69.937791' xlink:href='#g2-99'/>
|
||||
<use x='239.898226' y='69.937791' xlink:href='#g2-111'/>
|
||||
<use x='245.525663' y='69.937791' xlink:href='#g2-110'/>
|
||||
<use x='252.513269' y='69.937791' xlink:href='#g2-116'/>
|
||||
<use x='256.740429' y='69.937791' xlink:href='#g2-97'/>
|
||||
<use x='262.885373' y='69.937791' xlink:href='#g2-105'/>
|
||||
<use x='266.878805' y='69.937791' xlink:href='#g2-110'/>
|
||||
<use x='273.866411' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='279.291851' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='284.892324' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='290.40633' y='69.937791' xlink:href='#g3-91'/>
|
||||
<use x='293.657991' y='69.937791' xlink:href='#g2-106'/>
|
||||
<use x='299.173487' y='69.937791' xlink:href='#g3-93'/>
|
||||
<use x='302.425148' y='69.937791' xlink:href='#g2-58'/>
|
||||
<use x='305.676809' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='311.277283' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='316.702723' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='322.216728' y='69.937791' xlink:href='#g2-111'/>
|
||||
<use x='327.844166' y='69.937791' xlink:href='#g2-117'/>
|
||||
<use x='334.506606' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='340.107079' y='69.937791' xlink:href='#g2-99'/>
|
||||
<use x='345.145068' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='350.570508' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='356.084513' y='69.937791' xlink:href='#g2-58'/>
|
||||
<use x='359.336175' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='364.936648' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='370.362088' y='69.937791' xlink:href='#g2-113'/>
|
||||
<use x='375.981245' y='69.937791' xlink:href='#g2-117'/>
|
||||
<use x='382.643684' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='388.069124' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='393.58313' y='69.937791' xlink:href='#g2-116'/>
|
||||
<use x='397.81029' y='69.937791' xlink:href='#g2-115'/>
|
||||
<use x='403.324295' y='69.937791' xlink:href='#g3-91'/>
|
||||
<use x='406.575957' y='69.937791' xlink:href='#g2-109'/>
|
||||
<use x='416.815224' y='69.937791' xlink:href='#g2-101'/>
|
||||
<use x='422.240664' y='69.937791' xlink:href='#g2-109'/>
|
||||
<use x='432.479931' y='69.937791' xlink:href='#g2-111'/>
|
||||
<use x='438.107368' y='69.937791' xlink:href='#g2-114'/>
|
||||
<use x='443.707842' y='69.937791' xlink:href='#g2-121'/>
|
||||
<use x='449.844493' y='69.937791' xlink:href='#g3-93'/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
|
@ -0,0 +1,97 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Generated by CodeCogs with dvisvgm 2.9.1 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='411.32491pt' height='36.683306pt' viewBox='-.239051 -.232683 411.32491 36.683306'>
|
||||
<defs>
|
||||
<path id='g0-88' d='M15.135243 16.737235L16.581818 12.911582H16.282939C15.816687 14.154919 14.54944 14.96787 13.174595 15.326526C12.923537 15.386301 11.75193 15.697136 9.456538 15.697136H2.247572L8.332752 8.5599C8.416438 8.464259 8.440349 8.428394 8.440349 8.368618C8.440349 8.344707 8.440349 8.308842 8.356663 8.18929L2.785554 .573848H9.336986C10.938979 .573848 12.026899 .74122 12.134496 .765131C12.780075 .860772 13.820174 1.06401 14.764633 1.661768C15.063512 1.853051 15.876463 2.391034 16.282939 3.359402H16.581818L15.135243 0H1.004234C.729265 0 .71731 .011955 .681445 .083686C.669489 .119552 .669489 .3467 .669489 .478207L6.993773 9.133748L.800996 16.390535C.681445 16.533998 .681445 16.593773 .681445 16.605729C.681445 16.737235 .789041 16.737235 1.004234 16.737235H15.135243Z'/>
|
||||
<path id='g3-48' d='M3.897385-2.542466C3.897385-3.395268 3.809714-3.913325 3.5467-4.423412C3.196015-5.124782 2.550436-5.300125 2.11208-5.300125C1.107846-5.300125 .74122-4.550934 .629639-4.327771C.342715-3.745953 .326775-2.956912 .326775-2.542466C.326775-2.016438 .350685-1.211457 .73325-.573848C1.099875 .01594 1.689664 .167372 2.11208 .167372C2.494645 .167372 3.180075 .047821 3.57858-.74122C3.873474-1.315068 3.897385-2.024408 3.897385-2.542466ZM2.11208-.055791C1.841096-.055791 1.291158-.183313 1.123786-1.020174C1.036115-1.474471 1.036115-2.223661 1.036115-2.638107C1.036115-3.188045 1.036115-3.745953 1.123786-4.184309C1.291158-4.99726 1.912827-5.076961 2.11208-5.076961C2.383064-5.076961 2.933001-4.941469 3.092403-4.216189C3.188045-3.777833 3.188045-3.180075 3.188045-2.638107C3.188045-2.16787 3.188045-1.45056 3.092403-1.004234C2.925031-.167372 2.375093-.055791 2.11208-.055791Z'/>
|
||||
<path id='g3-61' d='M5.826152-2.654047C5.945704-2.654047 6.105106-2.654047 6.105106-2.83736S5.913823-3.020672 5.794271-3.020672H.781071C.661519-3.020672 .470237-3.020672 .470237-2.83736S.629639-2.654047 .749191-2.654047H5.826152ZM5.794271-.964384C5.913823-.964384 6.105106-.964384 6.105106-1.147696S5.945704-1.331009 5.826152-1.331009H.749191C.629639-1.331009 .470237-1.331009 .470237-1.147696S.661519-.964384 .781071-.964384H5.794271Z'/>
|
||||
<path id='g1-105' d='M2.375093-4.97335C2.375093-5.148692 2.247572-5.276214 2.064259-5.276214C1.857036-5.276214 1.625903-5.084932 1.625903-4.845828C1.625903-4.670486 1.753425-4.542964 1.936737-4.542964C2.14396-4.542964 2.375093-4.734247 2.375093-4.97335ZM1.211457-2.048319L.781071-.948443C.74122-.828892 .70137-.73325 .70137-.597758C.70137-.207223 1.004234 .079701 1.42665 .079701C2.199751 .079701 2.526526-1.036115 2.526526-1.139726C2.526526-1.219427 2.462765-1.243337 2.406974-1.243337C2.311333-1.243337 2.295392-1.187547 2.271482-1.107846C2.088169-.470237 1.761395-.143462 1.44259-.143462C1.346949-.143462 1.251308-.183313 1.251308-.398506C1.251308-.589788 1.307098-.73325 1.41071-.980324C1.490411-1.195517 1.570112-1.41071 1.657783-1.625903L1.904857-2.271482C1.976588-2.454795 2.072229-2.701868 2.072229-2.83736C2.072229-3.235866 1.753425-3.514819 1.346949-3.514819C.573848-3.514819 .239103-2.399004 .239103-2.295392C.239103-2.223661 .294894-2.191781 .358655-2.191781C.462267-2.191781 .470237-2.239601 .494147-2.319303C.71731-3.076463 1.083935-3.291656 1.323039-3.291656C1.43462-3.291656 1.514321-3.251806 1.514321-3.028643C1.514321-2.948941 1.506351-2.83736 1.42665-2.598257L1.211457-2.048319Z'/>
|
||||
<path id='g1-110' d='M1.594022-1.307098C1.617933-1.42665 1.697634-1.729514 1.721544-1.849066C1.833126-2.279452 1.833126-2.287422 2.016438-2.550436C2.279452-2.940971 2.654047-3.291656 3.188045-3.291656C3.474969-3.291656 3.642341-3.124284 3.642341-2.749689C3.642341-2.311333 3.307597-1.40274 3.156164-1.012204C3.052553-.749191 3.052553-.70137 3.052553-.597758C3.052553-.143462 3.427148 .079701 3.769863 .079701C4.550934 .079701 4.877709-1.036115 4.877709-1.139726C4.877709-1.219427 4.813948-1.243337 4.758157-1.243337C4.662516-1.243337 4.646575-1.187547 4.622665-1.107846C4.431382-.454296 4.096638-.143462 3.793773-.143462C3.666252-.143462 3.602491-.223163 3.602491-.406476S3.666252-.765131 3.745953-.964384C3.865504-1.267248 4.216189-2.183811 4.216189-2.630137C4.216189-3.227895 3.801743-3.514819 3.227895-3.514819C2.582316-3.514819 2.16787-3.124284 1.936737-2.82142C1.880946-3.259776 1.530262-3.514819 1.123786-3.514819C.836862-3.514819 .637609-3.331507 .510087-3.084433C.318804-2.709838 .239103-2.311333 .239103-2.295392C.239103-2.223661 .294894-2.191781 .358655-2.191781C.462267-2.191781 .470237-2.223661 .526027-2.430884C.621669-2.82142 .765131-3.291656 1.099875-3.291656C1.307098-3.291656 1.354919-3.092403 1.354919-2.917061C1.354919-2.773599 1.315068-2.622167 1.251308-2.359153C1.235367-2.295392 1.115816-1.825156 1.083935-1.713574L.789041-.518057C.757161-.398506 .70934-.199253 .70934-.167372C.70934 .01594 .860772 .079701 .964384 .079701C1.107846 .079701 1.227397-.01594 1.283188-.111582C1.307098-.159402 1.370859-.430386 1.41071-.597758L1.594022-1.307098Z'/>
|
||||
<path id='g4-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>
|
||||
<path id='g4-91' d='M2.988792 2.988792V2.546451H1.829141V-8.524035H2.988792V-8.966376H1.3868V2.988792H2.988792Z'/>
|
||||
<path id='g4-93' d='M1.853051-8.966376H.251059V-8.524035H1.41071V2.546451H.251059V2.988792H1.853051V-8.966376Z'/>
|
||||
<path id='g2-58' d='M2.199751-.573848C2.199751-.920548 1.912827-1.159651 1.625903-1.159651C1.279203-1.159651 1.0401-.872727 1.0401-.585803C1.0401-.239103 1.327024 0 1.613948 0C1.960648 0 2.199751-.286924 2.199751-.573848Z'/>
|
||||
<path id='g2-97' d='M3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665ZM4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.944458 4.27995-1.075965 4.387547-1.542217C4.471233-1.841096 4.531009-2.10411 4.62665-2.450809C5.068991-4.244085 5.176588-4.674471 5.176588-4.746202C5.176588-4.913574 5.045081-5.045081 4.865753-5.045081C4.483188-5.045081 4.387547-4.62665 4.363636-4.483188Z'/>
|
||||
<path id='g2-99' d='M4.674471-4.495143C4.447323-4.495143 4.339726-4.495143 4.172354-4.351681C4.100623-4.291905 3.969116-4.112578 3.969116-3.921295C3.969116-3.682192 4.148443-3.53873 4.375592-3.53873C4.662516-3.53873 4.985305-3.777833 4.985305-4.25604C4.985305-4.829888 4.435367-5.272229 3.610461-5.272229C2.044334-5.272229 .478207-3.56264 .478207-1.865006C.478207-.824907 1.123786 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.542217-.119552 1.279203-.836862 1.279203-1.43462C1.279203-1.853051 1.482441-3.012702 1.912827-3.825654C2.223661-4.387547 2.86924-5.033126 3.622416-5.033126C3.777833-5.033126 4.435367-5.009215 4.674471-4.495143Z'/>
|
||||
<path id='g2-100' d='M6.01345-7.998007C6.025405-8.045828 6.049315-8.117559 6.049315-8.177335C6.049315-8.296887 5.929763-8.296887 5.905853-8.296887C5.893898-8.296887 5.308095-8.249066 5.248319-8.237111C5.045081-8.225156 4.865753-8.201245 4.65056-8.18929C4.351681-8.16538 4.267995-8.153425 4.267995-7.938232C4.267995-7.81868 4.363636-7.81868 4.531009-7.81868C5.116812-7.81868 5.128767-7.711083 5.128767-7.591532C5.128767-7.519801 5.104857-7.424159 5.092902-7.388294L4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.71731 4.244085-.968369 4.327771-1.303113L6.01345-7.998007ZM3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665Z'/>
|
||||
<path id='g2-101' d='M2.139975-2.773599C2.462765-2.773599 3.275716-2.797509 3.849564-3.012702C4.758157-3.359402 4.841843-4.052802 4.841843-4.267995C4.841843-4.794022 4.387547-5.272229 3.598506-5.272229C2.343213-5.272229 .537983-4.136488 .537983-2.008468C.537983-.753176 1.255293 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.685679-.119552 1.327024-.657534 1.327024-1.542217C1.327024-1.709589 1.327024-2.008468 1.506351-2.773599H2.139975ZM1.566127-3.012702C2.080199-4.853798 3.21594-5.033126 3.598506-5.033126C4.124533-5.033126 4.483188-4.722291 4.483188-4.267995C4.483188-3.012702 2.570361-3.012702 2.068244-3.012702H1.566127Z'/>
|
||||
<path id='g2-105' d='M3.383313-1.709589C3.383313-1.769365 3.335492-1.817186 3.263761-1.817186C3.156164-1.817186 3.144209-1.78132 3.084433-1.578082C2.773599-.490162 2.283437-.119552 1.888917-.119552C1.745455-.119552 1.578082-.155417 1.578082-.514072C1.578082-.836862 1.721544-1.195517 1.853051-1.554172L2.689913-3.777833C2.725778-3.873474 2.809465-4.088667 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 1.984558-3.93325 1.888917-3.670237L1.052055-1.446575C.980324-1.255293 .908593-1.06401 .908593-.848817C.908593-.310834 1.279203 .119552 1.853051 .119552C2.952927 .119552 3.383313-1.625903 3.383313-1.709589ZM3.287671-7.460025C3.287671-7.639352 3.144209-7.854545 2.881196-7.854545C2.606227-7.854545 2.295392-7.591532 2.295392-7.280697C2.295392-6.981818 2.546451-6.886177 2.689913-6.886177C3.012702-6.886177 3.287671-7.197011 3.287671-7.460025Z'/>
|
||||
<path id='g2-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g2-110' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-3.514819 4.566874-2.15193 4.327771-1.506351C4.220174-1.219427 4.160399-1.06401 4.160399-.848817C4.160399-.310834 4.531009 .119552 5.104857 .119552C6.216687 .119552 6.635118-1.637858 6.635118-1.709589C6.635118-1.769365 6.587298-1.817186 6.515567-1.817186C6.40797-1.817186 6.396015-1.78132 6.336239-1.578082C6.06127-.597758 5.606974-.119552 5.140722-.119552C5.021171-.119552 4.829888-.131507 4.829888-.514072C4.829888-.812951 4.961395-1.171606 5.033126-1.338979C5.272229-1.996513 5.774346-3.335492 5.774346-4.016936C5.774346-4.734247 5.355915-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.171606-5.272229 .908593-5.045081 .705355-4.638605C.490162-4.208219 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.824907-4.351681 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>
|
||||
<path id='g2-111' d='M5.451557-3.287671C5.451557-4.423412 4.710336-5.272229 3.622416-5.272229C2.044334-5.272229 .490162-3.550685 .490162-1.865006C.490162-.729265 1.231382 .119552 2.319303 .119552C3.90934 .119552 5.451557-1.601993 5.451557-3.287671ZM2.331258-.119552C1.733499-.119552 1.291158-.597758 1.291158-1.43462C1.291158-1.984558 1.578082-3.203985 1.912827-3.801743C2.450809-4.722291 3.120299-5.033126 3.610461-5.033126C4.196264-5.033126 4.65056-4.554919 4.65056-3.718057C4.65056-3.239851 4.399502-1.960648 3.945205-1.231382C3.455044-.430386 2.797509-.119552 2.331258-.119552Z'/>
|
||||
<path id='g2-112' d='M.514072 1.518306C.430386 1.876961 .382565 1.972603-.107597 1.972603C-.251059 1.972603-.37061 1.972603-.37061 2.199751C-.37061 2.223661-.358655 2.319303-.227148 2.319303C-.071731 2.319303 .095641 2.295392 .251059 2.295392H.765131C1.016189 2.295392 1.625903 2.319303 1.876961 2.319303C1.948692 2.319303 2.092154 2.319303 2.092154 2.10411C2.092154 1.972603 2.008468 1.972603 1.80523 1.972603C1.255293 1.972603 1.219427 1.888917 1.219427 1.793275C1.219427 1.649813 1.75741-.406476 1.829141-.681445C1.960648-.3467 2.283437 .119552 2.905106 .119552C4.25604 .119552 5.71457-1.637858 5.71457-3.395268C5.71457-4.495143 5.092902-5.272229 4.196264-5.272229C3.431133-5.272229 2.785554-4.531009 2.654047-4.363636C2.558406-4.961395 2.092154-5.272229 1.613948-5.272229C1.267248-5.272229 .992279-5.104857 .765131-4.65056C.549938-4.220174 .382565-3.490909 .382565-3.443088S.430386-3.335492 .514072-3.335492C.609714-3.335492 .621669-3.347447 .6934-3.622416C.872727-4.327771 1.099875-5.033126 1.578082-5.033126C1.853051-5.033126 1.948692-4.841843 1.948692-4.483188C1.948692-4.196264 1.912827-4.076712 1.865006-3.861519L.514072 1.518306ZM2.582316-3.730012C2.666002-4.064757 3.000747-4.411457 3.19203-4.578829C3.323537-4.698381 3.718057-5.033126 4.172354-5.033126C4.698381-5.033126 4.937484-4.507098 4.937484-3.88543C4.937484-3.311582 4.60274-1.960648 4.303861-1.338979C4.004981-.6934 3.455044-.119552 2.905106-.119552C2.092154-.119552 1.960648-1.147696 1.960648-1.195517C1.960648-1.231382 1.984558-1.327024 1.996513-1.3868L2.582316-3.730012Z'/>
|
||||
<path id='g2-113' d='M5.272229-5.152677C5.272229-5.212453 5.224408-5.260274 5.164633-5.260274C5.068991-5.260274 4.60274-4.829888 4.375592-4.411457C4.160399-4.94944 3.789788-5.272229 3.275716-5.272229C1.924782-5.272229 .466252-3.526775 .466252-1.75741C.466252-.573848 1.159651 .119552 1.972603 .119552C2.606227 .119552 3.132254-.358655 3.383313-.633624L3.395268-.621669L2.940971 1.171606L2.833375 1.601993C2.725778 1.960648 2.546451 1.960648 1.984558 1.972603C1.853051 1.972603 1.733499 1.972603 1.733499 2.199751C1.733499 2.283437 1.80523 2.319303 1.888917 2.319303C2.056289 2.319303 2.271482 2.295392 2.438854 2.295392H3.658281C3.837609 2.295392 4.040847 2.319303 4.220174 2.319303C4.291905 2.319303 4.435367 2.319303 4.435367 2.092154C4.435367 1.972603 4.339726 1.972603 4.160399 1.972603C3.598506 1.972603 3.56264 1.888917 3.56264 1.793275C3.56264 1.733499 3.574595 1.721544 3.610461 1.566127L5.272229-5.152677ZM3.58655-1.422665C3.526775-1.219427 3.526775-1.195517 3.359402-.968369C3.096389-.633624 2.570361-.119552 2.008468-.119552C1.518306-.119552 1.243337-.561893 1.243337-1.267248C1.243337-1.924782 1.613948-3.263761 1.841096-3.765878C2.247572-4.60274 2.809465-5.033126 3.275716-5.033126C4.064757-5.033126 4.220174-4.052802 4.220174-3.957161C4.220174-3.945205 4.184309-3.789788 4.172354-3.765878L3.58655-1.422665Z'/>
|
||||
<path id='g2-114' d='M4.65056-4.889664C4.27995-4.817933 4.088667-4.554919 4.088667-4.291905C4.088667-4.004981 4.315816-3.90934 4.483188-3.90934C4.817933-3.90934 5.092902-4.196264 5.092902-4.554919C5.092902-4.937484 4.722291-5.272229 4.124533-5.272229C3.646326-5.272229 3.096389-5.057036 2.594271-4.327771C2.510585-4.961395 2.032379-5.272229 1.554172-5.272229C1.08792-5.272229 .848817-4.913574 .705355-4.65056C.502117-4.220174 .32279-3.502864 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.339726 1.0401-5.033126 1.518306-5.033126C1.80523-5.033126 1.888917-4.829888 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.338979 .119552 1.566127 .035866 1.637858-.203238C1.673724-.298879 2.116065-2.10411 2.187796-2.379078C2.247572-2.642092 2.319303-2.893151 2.379078-3.156164C2.426899-3.323537 2.47472-3.514819 2.510585-3.670237C2.546451-3.777833 2.86924-4.363636 3.16812-4.62665C3.311582-4.758157 3.622416-5.033126 4.112578-5.033126C4.303861-5.033126 4.495143-4.99726 4.65056-4.889664Z'/>
|
||||
<path id='g2-115' d='M2.725778-2.391034C2.929016-2.355168 3.251806-2.283437 3.323537-2.271482C3.478954-2.223661 4.016936-2.032379 4.016936-1.458531C4.016936-1.08792 3.682192-.119552 2.295392-.119552C2.044334-.119552 1.147696-.155417 .908593-.812951C1.3868-.753176 1.625903-1.123786 1.625903-1.3868C1.625903-1.637858 1.458531-1.769365 1.219427-1.769365C.956413-1.769365 .609714-1.566127 .609714-1.028144C.609714-.32279 1.327024 .119552 2.283437 .119552C4.100623 .119552 4.638605-1.219427 4.638605-1.841096C4.638605-2.020423 4.638605-2.355168 4.25604-2.737733C3.957161-3.024658 3.670237-3.084433 3.024658-3.21594C2.701868-3.287671 2.187796-3.395268 2.187796-3.93325C2.187796-4.172354 2.402989-5.033126 3.53873-5.033126C4.040847-5.033126 4.531009-4.841843 4.65056-4.411457C4.124533-4.411457 4.100623-3.957161 4.100623-3.945205C4.100623-3.694147 4.327771-3.622416 4.435367-3.622416C4.60274-3.622416 4.937484-3.753923 4.937484-4.25604S4.483188-5.272229 3.550685-5.272229C1.984558-5.272229 1.566127-4.040847 1.566127-3.550685C1.566127-2.642092 2.450809-2.450809 2.725778-2.391034Z'/>
|
||||
<path id='g2-116' d='M2.402989-4.805978H3.502864C3.730012-4.805978 3.849564-4.805978 3.849564-5.021171C3.849564-5.152677 3.777833-5.152677 3.53873-5.152677H2.486675L2.929016-6.898132C2.976837-7.065504 2.976837-7.089415 2.976837-7.173101C2.976837-7.364384 2.82142-7.47198 2.666002-7.47198C2.570361-7.47198 2.295392-7.436115 2.199751-7.053549L1.733499-5.152677H.609714C.37061-5.152677 .263014-5.152677 .263014-4.925529C.263014-4.805978 .3467-4.805978 .573848-4.805978H1.637858L.848817-1.649813C.753176-1.231382 .71731-1.111831 .71731-.956413C.71731-.394521 1.111831 .119552 1.78132 .119552C2.988792 .119552 3.634371-1.625903 3.634371-1.709589C3.634371-1.78132 3.58655-1.817186 3.514819-1.817186C3.490909-1.817186 3.443088-1.817186 3.419178-1.769365C3.407223-1.75741 3.395268-1.745455 3.311582-1.554172C3.060523-.956413 2.510585-.119552 1.817186-.119552C1.458531-.119552 1.43462-.418431 1.43462-.681445C1.43462-.6934 1.43462-.920548 1.470486-1.06401L2.402989-4.805978Z'/>
|
||||
<path id='g2-117' d='M4.076712-.6934C4.23213-.02391 4.805978 .119552 5.092902 .119552C5.475467 .119552 5.762391-.131507 5.953674-.537983C6.156912-.968369 6.312329-1.673724 6.312329-1.709589C6.312329-1.769365 6.264508-1.817186 6.192777-1.817186C6.085181-1.817186 6.073225-1.75741 6.025405-1.578082C5.810212-.753176 5.595019-.119552 5.116812-.119552C4.758157-.119552 4.758157-.514072 4.758157-.669489C4.758157-.944458 4.794022-1.06401 4.913574-1.566127C4.99726-1.888917 5.080946-2.211706 5.152677-2.546451L5.642839-4.495143C5.726526-4.794022 5.726526-4.817933 5.726526-4.853798C5.726526-5.033126 5.583064-5.152677 5.403736-5.152677C5.057036-5.152677 4.97335-4.853798 4.901619-4.554919C4.782067-4.088667 4.136488-1.518306 4.052802-1.099875C4.040847-1.099875 3.574595-.119552 2.701868-.119552C2.080199-.119552 1.960648-.657534 1.960648-1.099875C1.960648-1.78132 2.295392-2.737733 2.606227-3.53873C2.749689-3.921295 2.809465-4.076712 2.809465-4.315816C2.809465-4.829888 2.438854-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.578829 1.374844-5.033126 1.829141-5.033126C1.948692-5.033126 2.139975-5.021171 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.303113-2.10411 1.243337-1.649813 1.243337-1.291158C1.243337-.071731 2.163885 .119552 2.654047 .119552C3.419178 .119552 3.837609-.406476 4.076712-.6934Z'/>
|
||||
<path id='g2-121' d='M3.144209 1.338979C2.82142 1.793275 2.355168 2.199751 1.769365 2.199751C1.625903 2.199751 1.052055 2.175841 .872727 1.625903C.908593 1.637858 .968369 1.637858 .992279 1.637858C1.350934 1.637858 1.590037 1.327024 1.590037 1.052055S1.362889 .681445 1.183562 .681445C.992279 .681445 .573848 .824907 .573848 1.41071C.573848 2.020423 1.08792 2.438854 1.769365 2.438854C2.964882 2.438854 4.172354 1.338979 4.507098 .011955L5.678705-4.65056C5.69066-4.710336 5.71457-4.782067 5.71457-4.853798C5.71457-5.033126 5.571108-5.152677 5.391781-5.152677C5.284184-5.152677 5.033126-5.104857 4.937484-4.746202L4.052802-1.231382C3.993026-1.016189 3.993026-.992279 3.897385-.860772C3.658281-.526027 3.263761-.119552 2.689913-.119552C2.020423-.119552 1.960648-.777086 1.960648-1.099875C1.960648-1.78132 2.283437-2.701868 2.606227-3.56264C2.737733-3.90934 2.809465-4.076712 2.809465-4.315816C2.809465-4.817933 2.450809-5.272229 1.865006-5.272229C.765131-5.272229 .32279-3.53873 .32279-3.443088C.32279-3.395268 .37061-3.335492 .454296-3.335492C.561893-3.335492 .573848-3.383313 .621669-3.550685C.908593-4.554919 1.362889-5.033126 1.829141-5.033126C1.936737-5.033126 2.139975-5.033126 2.139975-4.638605C2.139975-4.327771 2.008468-3.981071 1.829141-3.526775C1.243337-1.960648 1.243337-1.566127 1.243337-1.279203C1.243337-.143462 2.056289 .119552 2.654047 .119552C3.000747 .119552 3.431133 .011955 3.849564-.430386L3.861519-.418431C3.682192 .286924 3.56264 .753176 3.144209 1.338979Z'/>
|
||||
</defs>
|
||||
<g id='page1' transform='matrix(1.13 0 0 1.13 -63.986043 -62.281577)'>
|
||||
<use x='56.413267' y='73.369366' xlink:href='#g2-109'/>
|
||||
<use x='66.652534' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='72.077974' y='73.369366' xlink:href='#g2-109'/>
|
||||
<use x='82.317241' y='73.369366' xlink:href='#g2-111'/>
|
||||
<use x='87.944679' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='93.545152' y='73.369366' xlink:href='#g2-121'/>
|
||||
<use x='99.681804' y='73.369366' xlink:href='#g2-58'/>
|
||||
<use x='102.933465' y='73.369366' xlink:href='#g2-109'/>
|
||||
<use x='113.172732' y='73.369366' xlink:href='#g2-105'/>
|
||||
<use x='117.166164' y='73.369366' xlink:href='#g2-110'/>
|
||||
<use x='127.474599' y='73.369366' xlink:href='#g4-61'/>
|
||||
<use x='145.965287' y='58.425345' xlink:href='#g1-110'/>
|
||||
<use x='139.90008' y='62.011901' xlink:href='#g0-88'/>
|
||||
<use x='141.682474' y='87.206256' xlink:href='#g1-105'/>
|
||||
<use x='144.565614' y='87.206256' xlink:href='#g3-61'/>
|
||||
<use x='151.15212' y='87.206256' xlink:href='#g3-48'/>
|
||||
<use x='159.161195' y='73.369366' xlink:href='#g2-112'/>
|
||||
<use x='165.036338' y='73.369366' xlink:href='#g2-111'/>
|
||||
<use x='170.663775' y='73.369366' xlink:href='#g2-100'/>
|
||||
<use x='176.746468' y='73.369366' xlink:href='#g2-58'/>
|
||||
<use x='179.998129' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='185.512135' y='73.369366' xlink:href='#g2-112'/>
|
||||
<use x='191.387278' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='196.812718' y='73.369366' xlink:href='#g2-99'/>
|
||||
<use x='201.850707' y='73.369366' xlink:href='#g2-58'/>
|
||||
<use x='205.102368' y='73.369366' xlink:href='#g2-99'/>
|
||||
<use x='210.140357' y='73.369366' xlink:href='#g2-111'/>
|
||||
<use x='215.767794' y='73.369366' xlink:href='#g2-110'/>
|
||||
<use x='222.7554' y='73.369366' xlink:href='#g2-116'/>
|
||||
<use x='226.982559' y='73.369366' xlink:href='#g2-97'/>
|
||||
<use x='233.127504' y='73.369366' xlink:href='#g2-105'/>
|
||||
<use x='237.120936' y='73.369366' xlink:href='#g2-110'/>
|
||||
<use x='244.108542' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='249.533982' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='255.134455' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='260.648461' y='73.369366' xlink:href='#g4-91'/>
|
||||
<use x='263.900122' y='73.369366' xlink:href='#g2-105'/>
|
||||
<use x='267.893554' y='73.369366' xlink:href='#g4-93'/>
|
||||
<use x='271.145216' y='73.369366' xlink:href='#g2-58'/>
|
||||
<use x='274.396877' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='279.99735' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='285.42279' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='290.936796' y='73.369366' xlink:href='#g2-111'/>
|
||||
<use x='296.564234' y='73.369366' xlink:href='#g2-117'/>
|
||||
<use x='303.226673' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='308.827147' y='73.369366' xlink:href='#g2-99'/>
|
||||
<use x='313.865135' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='319.290575' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='324.804581' y='73.369366' xlink:href='#g2-58'/>
|
||||
<use x='328.056242' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='333.656716' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='339.082156' y='73.369366' xlink:href='#g2-113'/>
|
||||
<use x='344.701312' y='73.369366' xlink:href='#g2-117'/>
|
||||
<use x='351.363752' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='356.789192' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='362.303198' y='73.369366' xlink:href='#g2-116'/>
|
||||
<use x='366.530357' y='73.369366' xlink:href='#g2-115'/>
|
||||
<use x='372.044363' y='73.369366' xlink:href='#g4-91'/>
|
||||
<use x='375.296024' y='73.369366' xlink:href='#g2-109'/>
|
||||
<use x='385.535291' y='73.369366' xlink:href='#g2-101'/>
|
||||
<use x='390.960731' y='73.369366' xlink:href='#g2-109'/>
|
||||
<use x='401.199998' y='73.369366' xlink:href='#g2-111'/>
|
||||
<use x='406.827436' y='73.369366' xlink:href='#g2-114'/>
|
||||
<use x='412.427909' y='73.369366' xlink:href='#g2-121'/>
|
||||
<use x='418.564561' y='73.369366' xlink:href='#g4-93'/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
|
@ -260,12 +260,6 @@ Multus supports all [reference plugins](https://github.com/containernetworking/p
|
|||
|
||||
[NSX-T Container Plug-in (NCP)](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) provides integration between NSX-T and container orchestrators such as Kubernetes, as well as integration between NSX-T and container-based CaaS/PaaS platforms such as Pivotal Container Service (PKS) and OpenShift.
|
||||
|
||||
### OpenVSwitch
|
||||
|
||||
[OpenVSwitch](https://www.openvswitch.org/) is a somewhat more mature but also
|
||||
complicated way to build an overlay network. This is endorsed by several of the
|
||||
"Big Shops" for networking.
|
||||
|
||||
### OVN (Open Virtual Networking)
|
||||
|
||||
OVN is an opensource network virtualization solution developed by the
|
||||
|
|
|
@ -145,7 +145,7 @@ Kubernetes provides several built-in authentication methods, and an [Authenticat
|
|||
|
||||
### Authorization
|
||||
|
||||
[Authorization](/docs/reference/access-authn-authz/webhook/) determines whether specific users can read, write, and do other operations on API resources. It works at the level of whole resources -- it doesn't discriminate based on arbitrary object fields. If the built-in authorization options don't meet your needs, and [Authorization webhook](/docs/reference/access-authn-authz/webhook/) allows calling out to user-provided code to make an authorization decision.
|
||||
[Authorization](/docs/reference/access-authn-authz/authorization/) determines whether specific users can read, write, and do other operations on API resources. It works at the level of whole resources -- it doesn't discriminate based on arbitrary object fields. If the built-in authorization options don't meet your needs, [Authorization webhook](/docs/reference/access-authn-authz/webhook/) allows calling out to user-provided code to make an authorization decision.
|
||||
|
||||
|
||||
### Dynamic Admission Control
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace.
|
|||
|
||||
DNS queries may be expanded using the pod's `/etc/resolv.conf`. Kubelet
|
||||
sets this file for each pod. For example, a query for just `data` may be
|
||||
expanded to `data.test.cluster.local`. The values of the `search` option
|
||||
expanded to `data.test.svc.cluster.local`. The values of the `search` option
|
||||
are used to expand queries. To learn more about DNS queries, see
|
||||
[the `resolv.conf` manual page.](https://www.man7.org/linux/man-pages/man5/resolv.conf.5.html)
|
||||
|
||||
|
|
|
@ -550,7 +550,7 @@ The default is `ClusterIP`.
|
|||
* `ClusterIP`: Exposes the Service on a cluster-internal IP. Choosing this value
|
||||
makes the Service only reachable from within the cluster. This is the
|
||||
default `ServiceType`.
|
||||
* [`NodePort`](#nodeport): Exposes the Service on each Node's IP at a static port
|
||||
* [`NodePort`](#type-nodeport): Exposes the Service on each Node's IP at a static port
|
||||
(the `NodePort`). A `ClusterIP` Service, to which the `NodePort` Service
|
||||
routes, is automatically created. You'll be able to contact the `NodePort` Service,
|
||||
from outside the cluster,
|
||||
|
|
|
@ -71,7 +71,7 @@ volume mount will not receive updates for those volume sources.
|
|||
|
||||
## SecurityContext interactions
|
||||
|
||||
The [proposal for file permission handling in projected service account volume](https://github.com/kubernetes/enhancements/pull/1598)
|
||||
The [proposal for file permission handling in projected service account volume](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2451-service-account-token-volumes#token-volume-projection)
|
||||
enhancement introduced the projected files having the the correct owner
|
||||
permissions set.
|
||||
|
||||
|
@ -100,6 +100,8 @@ into their own volume mount outside of `C:\`.
|
|||
By default, the projected files will have the following ownership as shown for
|
||||
an example projected volume file:
|
||||
```powershell
|
||||
PS C:\> Get-Acl C:\var\run\secrets\kubernetes.io\serviceaccount\..2021_08_31_22_22_18.318230061\ca.crt | Format-List
|
||||
|
||||
Path : Microsoft.PowerShell.Core\FileSystem::C:\var\run\secrets\kubernetes.io\serviceaccount\..2021_08_31_22_22_18.318230061\ca.crt
|
||||
Owner : BUILTIN\Administrators
|
||||
Group : NT AUTHORITY\SYSTEM
|
||||
|
|
|
@ -470,14 +470,14 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c
|
|||
|
||||
There are two types of provisioners for vSphere storage classes:
|
||||
|
||||
- [CSI provisioner](#csi-provisioner): `csi.vsphere.vmware.com`
|
||||
- [CSI provisioner](#vsphere-provisioner-csi): `csi.vsphere.vmware.com`
|
||||
- [vCP provisioner](#vcp-provisioner): `kubernetes.io/vsphere-volume`
|
||||
|
||||
In-tree provisioners are [deprecated](/blog/2019/12/09/kubernetes-1-17-feature-csi-migration-beta/#why-are-we-migrating-in-tree-plugins-to-csi). For more information on the CSI provisioner, see [Kubernetes vSphere CSI Driver](https://vsphere-csi-driver.sigs.k8s.io/) and [vSphereVolume CSI migration](/docs/concepts/storage/volumes/#csi-migration-5).
|
||||
|
||||
#### CSI Provisioner {#vsphere-provisioner-csi}
|
||||
|
||||
The vSphere CSI StorageClass provisioner works with Tanzu Kubernetes clusters. For an example, refer to the [vSphere CSI repository](https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/master/example/vanilla-k8s-file-driver/example-sc.yaml).
|
||||
The vSphere CSI StorageClass provisioner works with Tanzu Kubernetes clusters. For an example, refer to the [vSphere CSI repository](https://github.com/kubernetes-sigs/vsphere-csi-driver/blob/master/example/vanilla-k8s-RWM-filesystem-volumes/example-sc.yaml).
|
||||
|
||||
#### vCP Provisioner
|
||||
|
||||
|
|
|
@ -811,7 +811,7 @@ For more details, see the [Portworx volume](https://github.com/kubernetes/exampl
|
|||
### projected
|
||||
|
||||
A projected volume maps several existing volume sources into the same
|
||||
directory. For more details, see [projected volumes](/docs/concepts/storage/projected-volumes/)
|
||||
directory. For more details, see [projected volumes](/docs/concepts/storage/projected-volumes/).
|
||||
|
||||
### quobyte (deprecated) {#quobyte}
|
||||
|
||||
|
|
|
@ -250,7 +250,7 @@ back-off count is reset when a Job's Pod is deleted or successful without any
|
|||
other Pods for the Job failing around that time.
|
||||
|
||||
{{< note >}}
|
||||
If your job has `restartPolicy = "OnFailure"`, keep in mind that your container running the Job
|
||||
If your job has `restartPolicy = "OnFailure"`, keep in mind that your Pod running the Job
|
||||
will be terminated once the job backoff limit has been reached. This can make debugging the Job's executable more difficult. We suggest setting
|
||||
`restartPolicy = "Never"` when debugging the Job or using a logging system to ensure output
|
||||
from failed Jobs is not lost inadvertently.
|
||||
|
@ -346,6 +346,25 @@ If the field is set to `0`, the Job will be eligible to be automatically deleted
|
|||
immediately after it finishes. If the field is unset, this Job won't be cleaned
|
||||
up by the TTL controller after it finishes.
|
||||
|
||||
{{< note >}}
|
||||
It is recommended to set `ttlSecondsAfterFinished` field because unmanaged jobs
|
||||
(Jobs that you created directly, and not indirectly through other workload APIs
|
||||
such as CronJob) have a default deletion
|
||||
policy of `orphanDependents` causing Pods created by an unmanaged Job to be left around
|
||||
after that Job is fully deleted.
|
||||
Even though the {{< glossary_tooltip text="control plane" term_id="control-plane" >}} eventually
|
||||
[garbage collects](/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection)
|
||||
the Pods from a deleted Job after they either fail or complete, sometimes those
|
||||
lingering pods may cause cluster performance degradation or in worst case cause the
|
||||
cluster to go offline due to this degradation.
|
||||
|
||||
You can use [LimitRanges](/docs/concepts/policy/limit-range/) and
|
||||
[ResourceQuotas](/docs/concepts/policy/resource-quotas/) to place a
|
||||
cap on the amount of resources that a particular namespace can
|
||||
consume.
|
||||
{{< /note >}}
|
||||
|
||||
|
||||
## Job patterns
|
||||
|
||||
The Job object can be used to support reliable parallel execution of Pods. The Job object is not
|
||||
|
|
|
@ -128,8 +128,8 @@ The "intended" number of pods is computed from the `.spec.replicas` of the workl
|
|||
that is managing those pods. The control plane discovers the owning workload resource by
|
||||
examining the `.metadata.ownerReferences` of the Pod.
|
||||
|
||||
PDBs cannot prevent [involuntary disruptions](#voluntary-and-involuntary-disruptions) from
|
||||
occurring, but they do count against the budget.
|
||||
[Involuntary disruptions](#voluntary-and-involuntary-disruptions) cannot be prevented by PDBs; however they
|
||||
do count against the budget.
|
||||
|
||||
Pods which are deleted or unavailable due to a rolling upgrade to an application do count
|
||||
against the disruption budget, but workload resources (such as Deployment and StatefulSet)
|
||||
|
|
|
@ -26,6 +26,7 @@ Each day in a week-long shift as PR Wrangler:
|
|||
- If you need to verify content, comment on the PR and request more details.
|
||||
- Assign relevant `sig/` label(s).
|
||||
- If needed, assign reviewers from the `reviewers:` block in the file's front matter.
|
||||
- You can also tag a [SIG](https://github.com/kubernetes/community/blob/master/sig-list.md) for a review by commenting `@kubernetes/<sig>-pr-reviews` on the PR.
|
||||
- Use the `/approve` comment to approve a PR for merging. Merge the PR when ready.
|
||||
- PRs should have a `/lgtm` comment from another member before merging.
|
||||
- Consider accepting technically accurate content that doesn't meet the [style guidelines](/docs/contribute/style/style-guide/). Open a new issue with the label `good first issue` to address style concerns.
|
||||
|
|
|
@ -14,7 +14,7 @@ For additional information on creating new content for the Kubernetes
|
|||
documentation, read the [Documentation Content Guide](/docs/contribute/style/content-guide/).
|
||||
|
||||
Changes to the style guide are made by SIG Docs as a group. To propose a change
|
||||
or addition, [add it to the agenda](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit) for an upcoming SIG Docs meeting, and attend the meeting to participate in the
|
||||
or addition, [add it to the agenda](https://bit.ly/sig-docs-agenda) for an upcoming SIG Docs meeting, and attend the meeting to participate in the
|
||||
discussion.
|
||||
|
||||
<!-- body -->
|
||||
|
|
|
@ -22,5 +22,5 @@ tags:
|
|||
|
||||
<!--more-->
|
||||
|
||||
PDBs cannot prevent an involuntary disruption, but
|
||||
will count against the budget.
|
||||
Involuntary disruptions cannot be prevented by PDBs; however they
|
||||
do count against the budget.
|
||||
|
|
|
@ -289,10 +289,11 @@ kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Scale multip
|
|||
## Deleting resources
|
||||
|
||||
```bash
|
||||
kubectl delete -f ./pod.json # Delete a pod using the type and name specified in pod.json
|
||||
kubectl delete pod,service baz foo # Delete pods and services with same names "baz" and "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Delete pods and services with label name=myLabel
|
||||
kubectl -n my-ns delete pod,svc --all # Delete all pods and services in namespace my-ns,
|
||||
kubectl delete -f ./pod.json # Delete a pod using the type and name specified in pod.json
|
||||
kubectl delete pod unwanted --now # Delete a pod with no grace period
|
||||
kubectl delete pod,service baz foo # Delete pods and services with same names "baz" and "foo"
|
||||
kubectl delete pods,services -l name=myLabel # Delete pods and services with label name=myLabel
|
||||
kubectl -n my-ns delete pod,svc --all # Delete all pods and services in namespace my-ns,
|
||||
# Delete all pods matching the awk pattern1 or pattern2
|
||||
kubectl get pods -n mynamespace --no-headers=true | awk '/pattern1|pattern2/{print $1}' | xargs kubectl delete -n mynamespace pod
|
||||
```
|
||||
|
@ -323,6 +324,24 @@ kubectl exec my-pod -c my-container -- ls / # Run command in existing po
|
|||
kubectl top pod POD_NAME --containers # Show metrics for a given pod and its containers
|
||||
kubectl top pod POD_NAME --sort-by=cpu # Show metrics for a given pod and sort it by 'cpu' or 'memory'
|
||||
```
|
||||
## Copy files and directories to and from containers
|
||||
|
||||
```bash
|
||||
kubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Copy /tmp/foo_dir local directory to /tmp/bar_dir in a remote pod in the current namespace
|
||||
kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Copy /tmp/foo local file to /tmp/bar in a remote pod in a specific container
|
||||
kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace my-namespace
|
||||
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copy /tmp/foo from a remote pod to /tmp/bar locally
|
||||
```
|
||||
{{< note >}}
|
||||
`kubectl cp` requires that the 'tar' binary is present in your container image. If 'tar' is not present,`kubectl cp` will fail.
|
||||
For advanced use cases, such as symlinks, wildcard expansion or file mode preservation consider using `kubectl exec`.
|
||||
{{< /note >}}
|
||||
|
||||
```bash
|
||||
tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Copy /tmp/foo local file to /tmp/bar in a remote pod in namespace my-namespace
|
||||
kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copy /tmp/foo from a remote pod to /tmp/bar locally
|
||||
```
|
||||
|
||||
|
||||
## Interacting with Deployments and Services
|
||||
```bash
|
||||
|
|
|
@ -91,6 +91,7 @@ If:
|
|||
* the `KUBERNETES_SERVICE_HOST` environment variable is set, and
|
||||
* the `KUBERNETES_SERVICE_PORT` environment variable is set, and
|
||||
* you don't explicitly specify a namespace on the kubectl command line
|
||||
|
||||
then kubectl assumes it is running in your cluster. The kubectl tool looks up the
|
||||
namespace of that ServiceAccount (this is the same as the namespace of the Pod)
|
||||
and acts against that namespace. This is different from what happens outside of a
|
||||
|
@ -545,4 +546,3 @@ Current user: plugins-user
|
|||
|
||||
* To find out more about plugins, take a look at the [example cli plugin](https://github.com/kubernetes/sample-cli-plugin).
|
||||
|
||||
|
||||
|
|
|
@ -36,10 +36,9 @@ Example: `kubernetes.io/metadata.name=mynamespace`
|
|||
|
||||
Used on: Namespaces
|
||||
|
||||
When the `NamespaceDefaultLabelName`
|
||||
[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) is enabled,
|
||||
the Kubernetes API server sets this label on all namespaces. The label value is set to
|
||||
the name of the namespace.
|
||||
The Kubernetes API server (part of the {{< glossary_tooltip text="control plane" term_id="control-plane" >}})
|
||||
sets this label on all namespaces. The label value is set
|
||||
to the name of the namespace. You can't change this label's value.
|
||||
|
||||
This is useful if you want to target a specific namespace with a label
|
||||
{{< glossary_tooltip text="selector" term_id="selector" >}}.
|
||||
|
|
|
@ -49,3 +49,19 @@ Use Kompose to:
|
|||
* Translate a Docker Compose file into Kubernetes objects
|
||||
* Go from local Docker development to managing your application via Kubernetes
|
||||
* Convert v1 or v2 Docker Compose `yaml` files or [Distributed Application Bundles](https://docs.docker.com/compose/bundles/)
|
||||
|
||||
## Kui
|
||||
|
||||
[`Kui`](https://github.com/kubernetes-sigs/kui) is a GUI tool that takes your normal
|
||||
`kubectl` command line requests and responds with graphics.
|
||||
|
||||
Kui takes the normal `kubectl` command line requests and responds with graphics. Instead
|
||||
of ASCII tables, Kui provides a GUI rendering with tables that you can sort.
|
||||
|
||||
Kui lets you:
|
||||
|
||||
* Directly click on long, auto-generated resource names instead of copying and pasting
|
||||
* Type in `kubectl` commands and see them execute, even sometimes faster than `kubectl` itself
|
||||
* Query a {{< glossary_tooltip text="Job" term_id="job">}} and see its execution rendered
|
||||
as a waterfall diagram
|
||||
* Click through resources in your cluster using a tabbed UI
|
|
@ -19,12 +19,12 @@ The `healthz` endpoint is deprecated (since Kubernetes v1.16), and you should us
|
|||
The `livez` endpoint can be used with the `--livez-grace-period` [flag](/docs/reference/command-line-tools-reference/kube-apiserver) to specify the startup duration.
|
||||
For a graceful shutdown you can specify the `--shutdown-delay-duration` [flag](/docs/reference/command-line-tools-reference/kube-apiserver) with the `/readyz` endpoint.
|
||||
Machines that check the `healthz`/`livez`/`readyz` of the API server should rely on the HTTP status code.
|
||||
A status code `200` indicates the API server is `healthy`/`live`/`ready`, depending of the called endpoint.
|
||||
The more verbose options shown below are intended to be used by human operators to debug their cluster or specially the state of the API server.
|
||||
A status code `200` indicates the API server is `healthy`/`live`/`ready`, depending on the called endpoint.
|
||||
The more verbose options shown below are intended to be used by human operators to debug their cluster or understand the state of the API server.
|
||||
|
||||
The following examples will show how you can interact with the health API endpoints.
|
||||
|
||||
For all endpoints you can use the `verbose` parameter to print out the checks and their status.
|
||||
For all endpoints, you can use the `verbose` parameter to print out the checks and their status.
|
||||
This can be useful for a human operator to debug the current status of the API server, it is not intended to be consumed by a machine:
|
||||
|
||||
```shell
|
||||
|
@ -93,7 +93,7 @@ The output show that the `etcd` check is excluded:
|
|||
|
||||
{{< feature-state state="alpha" >}}
|
||||
|
||||
Each individual health check exposes an HTTP endpoint and could can be checked individually.
|
||||
Each individual health check exposes an HTTP endpoint and can be checked individually.
|
||||
The schema for the individual health checks is `/livez/<healthcheck-name>` where `livez` and `readyz` and be used to indicate if you want to check the liveness or the readiness of the API server.
|
||||
The `<healthcheck-name>` path can be discovered using the `verbose` flag from above and take the path between `[+]` and `ok`.
|
||||
These individual health checks should not be consumed by machines but can be helpful for a human operator to debug a system:
|
||||
|
|
|
@ -79,7 +79,7 @@ If systemd doesn't use cgroup v2 by default, you can configure the system to use
|
|||
# dnf install -y grubby && \
|
||||
sudo grubby \
|
||||
--update-kernel=ALL \
|
||||
--args=”systemd.unified_cgroup_hierarchy=1"
|
||||
--args="systemd.unified_cgroup_hierarchy=1"
|
||||
```
|
||||
|
||||
To apply the configuration, it is necessary to reboot the node.
|
||||
|
|
|
@ -383,6 +383,12 @@ Run 'kubectl get nodes' on control-plane to see this machine join.
|
|||
A few seconds later, you should notice this node in the output from `kubectl get
|
||||
nodes` when run on the control-plane node.
|
||||
|
||||
{{< note >}}
|
||||
As the cluster nodes are usually initialized sequentially, the CoreDNS Pods are likely to all run
|
||||
on the first control-plane node. To provide higher availability, please rebalance the CoreDNS Pods
|
||||
with `kubectl -n kube-system rollout restart deployment coredns` after at least one new node is joined.
|
||||
{{< /note >}}
|
||||
|
||||
### (Optional) Controlling your cluster from machines other than the control-plane node
|
||||
|
||||
In order to get a kubectl on some other computer (e.g. laptop) to talk to your
|
||||
|
|
|
@ -76,7 +76,7 @@ then paging can slow down performance.
|
|||
You can place bounds on memory use for workloads using the kubelet
|
||||
parameters `--kubelet-reserve` and/or `--system-reserve`; these account
|
||||
for memory usage on the node (outside of containers), and reduce
|
||||
[NodeAllocatable](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable)).
|
||||
[NodeAllocatable](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable).
|
||||
As you deploy workloads, set resource limits on containers. This also subtracts from
|
||||
`NodeAllocatable` and prevents the scheduler from adding more pods once a node is full.
|
||||
|
||||
|
|
|
@ -158,7 +158,7 @@ Install-WindowsFeature -Name containers
|
|||
```
|
||||
|
||||
Install Docker
|
||||
Instructions to do so are available at [Install Docker Engine - Enterprise on Windows Servers](https://hub.docker.com/editions/enterprise/docker-ee-server-windows).
|
||||
Instructions to do so are available at [Install Docker Engine - Enterprise on Windows Servers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server#install-docker).
|
||||
|
||||
#### Install wins, kubelet, and kubeadm
|
||||
|
||||
|
|
|
@ -150,13 +150,12 @@ you need is an existing `docker-compose.yml` file.
|
|||
```
|
||||
|
||||
```bash
|
||||
kubectl apply -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,
|
||||
kubectl apply -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml
|
||||
```
|
||||
|
||||
The output is similar to:
|
||||
|
||||
```none
|
||||
redis-master-deployment.yaml,redis-slave-deployment.yaml
|
||||
service/frontend created
|
||||
service/redis-master created
|
||||
service/redis-slave created
|
||||
|
|
|
@ -11,7 +11,11 @@ communication.
|
|||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
{{< include "task-tutorial-prereqs.md" >}}
|
||||
You need to have a Kubernetes cluster, and the kubectl command-line tool must
|
||||
be configured to communicate with your cluster. It is recommended to run this
|
||||
tutorial on a cluster with at least two nodes that are not acting as control
|
||||
plane hosts. If you do not already have a cluster, you can create one by using
|
||||
[minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/).
|
||||
|
||||
<!-- steps -->
|
||||
|
||||
|
|
|
@ -162,9 +162,19 @@ Events: <none>
|
|||
|
||||
## Get the Certificate Signing Request Approved
|
||||
|
||||
Approving the certificate signing request is either done by an automated
|
||||
approval process or on a one off basis by a cluster administrator. More
|
||||
information on what this involves is covered below.
|
||||
Approving the [certificate signing request](/docs/reference/access-authn-authz/certificate-signing-requests/)
|
||||
is either done by an automated approval process or on a one off basis by a cluster
|
||||
administrator. If you're authorized to approve a certificate request, you can do that
|
||||
manually using `kubectl`; for example:
|
||||
|
||||
```shell
|
||||
kubectl certificate approve my-svc.my-namespace
|
||||
```
|
||||
|
||||
```none
|
||||
certificatesigningrequest.certificates.k8s.io/my-svc.my-namespace approved
|
||||
```
|
||||
|
||||
|
||||
## Download the Certificate and Use It
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ If you have an alias for kubectl, you can extend shell completion to work with t
|
|||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
After reloading your shell, kubectl autocompletion should be working.
|
||||
|
|
|
@ -894,8 +894,7 @@ Use this command to get the nodes in your cluster.
|
|||
kubectl get nodes
|
||||
```
|
||||
|
||||
Use [`kubectl cordon`](/docs/reference/generated/kubectl/kubectl-commands/#cordon) to
|
||||
cordon all but four of the nodes in your cluster.
|
||||
This tutorial assumes a cluster with at least four nodes. If the cluster has more than four, use [`kubectl cordon`](/docs/reference/generated/kubectl/kubectl-commands/#cordon) to cordon all but four nodes. Constraining to four nodes will ensure Kubernetes encounters affinity and PodDisruptionBudget constraints when scheduling zookeeper Pods in the following maintenance simulation.
|
||||
|
||||
```shell
|
||||
kubectl cordon <node-name>
|
||||
|
|
|
@ -78,7 +78,6 @@ releases may also occur in between these.
|
|||
|
||||
| Monthly Patch Release | Cherry Pick Deadline | Target date |
|
||||
| --------------------- | -------------------- | ----------- |
|
||||
| November 2021 | 2021-11-12 | 2021-11-17 |
|
||||
| December 2021 | 2021-12-10 | 2021-12-15 |
|
||||
| January 2022 | 2021-01-14 | 2021-01-19 |
|
||||
| February 2022 | 2021-02-11 | 2021-02-16 |
|
||||
|
@ -94,6 +93,7 @@ End of Life for **1.22** is **2022-10-28**
|
|||
|
||||
| PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | NOTE |
|
||||
|---------------|----------------------|-------------|------|
|
||||
| 1.22.5 | 2021-12-10 | 2021-12-15 | |
|
||||
| 1.22.4 | 2021-11-12 | 2021-11-17 | |
|
||||
| 1.22.3 | 2021-10-22 | 2021-10-27 | |
|
||||
| 1.22.2 | 2021-09-10 | 2021-09-15 | |
|
||||
|
@ -107,6 +107,7 @@ End of Life for **1.21** is **2022-06-28**
|
|||
|
||||
| PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | NOTE |
|
||||
| ------------- | -------------------- | ----------- | ---------------------------------------------------------------------- |
|
||||
| 1.21.8 | 2021-12-10 | 2021-12-15 | |
|
||||
| 1.21.7 | 2021-11-12 | 2021-11-17 | |
|
||||
| 1.21.6 | 2021-10-22 | 2021-10-27 | |
|
||||
| 1.21.5 | 2021-09-10 | 2021-09-15 | |
|
||||
|
@ -123,6 +124,7 @@ End of Life for **1.20** is **2022-02-28**
|
|||
|
||||
| PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | NOTE |
|
||||
| ------------- | -------------------- | ----------- | ----------------------------------------------------------------------------------- |
|
||||
| 1.20.14 | 2021-12-10 | 2021-12-15 | |
|
||||
| 1.20.13 | 2021-11-12 | 2021-11-17 | |
|
||||
| 1.20.12 | 2021-10-22 | 2021-10-27 | |
|
||||
| 1.20.11 | 2021-09-10 | 2021-09-15 | |
|
||||
|
|
|
@ -0,0 +1,341 @@
|
|||
---
|
||||
title: Contenedores de Inicialización
|
||||
content_type: concept
|
||||
weight: 40
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
Esta página proporciona una descripción general de los contenedores de inicialización (init containers): contenedores especializados que se ejecutan
|
||||
antes de los contenedores de aplicación en un {{< glossary_tooltip text="Pod" term_id="pod" >}}.
|
||||
Los contenedores de inicialización pueden contener utilidades o scripts de instalación no presentes en una imagen de aplicación.
|
||||
|
||||
Tú puedes especificar contenedores de inicialización en la especificación del Pod junto con el arreglo de `containers`
|
||||
(el cual describe los contenedores de aplicación).
|
||||
|
||||
<!-- body -->
|
||||
## Entendiendo los contenedores de inicialización
|
||||
|
||||
Un {{< glossary_tooltip text="Pod" term_id="pod" >}} puede tener múltiples contenedores
|
||||
ejecutando aplicaciones dentro de él, pero también puede tener uno o más contenedores de inicialización
|
||||
que se ejecutan antes de que se inicien los contenedores de aplicación.
|
||||
|
||||
Los contenedores de inicialización son exactamente iguales a los contenedores regulares excepto por:
|
||||
|
||||
* Los contenedores de inicialización siempre se ejecutan hasta su finalización.
|
||||
* Cada contenedor de inicialiación debe completarse correctamente antes de que comience el siguiente.
|
||||
|
||||
Si el contenedor de inicialización de un Pod falla, kubelet reinicia repetidamente ese contenedor de inicialización hasta que tenga éxito.
|
||||
Sin embargo, si el Pod tiene una `restartPolicy` de `Never` y un contenedor de inicialización falla durante el inicio de ese Pod, Kubernetes trata al Pod en general como fallido.
|
||||
|
||||
Para especificar un contenedor de inicialización para un Pod, agrega el campo `initContainers` en
|
||||
la [especificación del Pod](/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec),
|
||||
como un arreglo de elementos `container` (similar al campo `containers` de aplicación y su contenido).
|
||||
Consulta [Container](/docs/reference/kubernetes-api/workload-resources/pod-v1/#Container) en la
|
||||
referencia de API para más detalles.
|
||||
|
||||
El estado de los contenedores de inicialización se devuelve en el campo `.status.initContainerStatuses`
|
||||
como un arreglo de los estados del contenedor (similar al campo `.status.containerStatuses`).
|
||||
|
||||
### Diferencias con los contenedores regulares
|
||||
|
||||
Los contenedores de inicialización admiten todos los campos y características de los contenedores de aplicaciones,
|
||||
incluidos los límites de recursos, los volúmenes y la configuración de seguridad. Sin embargo, las
|
||||
solicitudes de recursos y los límites para un contenedor de inicialización se manejan de manera diferente,
|
||||
como se documenta en [Recursos](#resources).
|
||||
|
||||
Además, los contenedores de inicialización no admiten `lifecycle`, `livenessProbe`, `readinessProbe` o
|
||||
`startupProbe` porque deben de ejecutarse hasta su finalización antes de que el Pod pueda estar listo.
|
||||
|
||||
Si especificas varios contenedores de inicialización para un Pod, kubelet ejecuta cada contenedor
|
||||
de inicialización secuencialmente. Cada contenedor de inicialización debe tener éxito antes de que se pueda ejecutar el siguiente.
|
||||
Cuando todos los contenedores de inicialización se hayan ejecutado hasta su finalización, kubelet inicializa
|
||||
los contenedores de aplicación para el Pod y los ejecuta como de costumbre.
|
||||
|
||||
### Usando contenedores de inicialización
|
||||
|
||||
Dado que los contenedores de inicialización tienen imágenes separadas de los contenedores de aplicaciones, estos
|
||||
tienen algunas ventajas sobre el código relacionado de inicio:
|
||||
|
||||
* Los contenedores de inicialización pueden contener utilidades o código personalizado para la configuración que no están presentes en una
|
||||
imagen de aplicación. Por ejemplo, no hay necesidad de hacer una imagen `FROM` de otra imagen solo para usar una herramienta como
|
||||
`sed`, `awk`, `python` o `dig` durante la instalación.
|
||||
* Los roles de constructor e implementador de imágenes de aplicación pueden funcionar de forma independiente sin
|
||||
la necesidad de construir conjuntamente una sola imagen de aplicación.
|
||||
* Los contenedores de inicialización pueden ejecutarse con una vista diferente al sistema de archivos que los contenedores de aplicaciones en
|
||||
el mismo Pod. En consecuencia, se les puede dar acceso a
|
||||
{{<glossary_tooltip text = "Secrets" term_id = "secret">}} a los que los contenedores de aplicaciones no pueden acceder.
|
||||
* Debido a que los contenedores de inicialización se ejecutan hasta su finalización antes de que se inicien los contenedores de aplicaciones, los contenedores de inicialización ofrecen
|
||||
un mecanismo para bloquear o retrasar el inicio del contenedor de aplicación hasta que se cumplan una serie de condiciones previas. Una vez
|
||||
que las condiciones previas se cumplen, todos los contenedores de aplicaciones de un Pod pueden iniciarse en paralelo.
|
||||
* Los contenedores de inicialización pueden ejecutar de forma segura utilidades o código personalizado que de otro modo harían a una imagen de aplicación
|
||||
de contenedor menos segura. Si mantiene separadas herramientas innecesarias, puede limitar la superficie de ataque
|
||||
a la imagen del contenedor de aplicación.
|
||||
|
||||
### Ejemplos
|
||||
|
||||
A continuación, se muestran algunas ideas sobre cómo utilizar los contenedores de inicialización:
|
||||
|
||||
* Esperar a que se cree un {{< glossary_tooltip text="Service" term_id="service">}}
|
||||
usando una sola linea de comando de shell:
|
||||
|
||||
```shell
|
||||
for i in {1..100}; do sleep 1; if dig myservice; then exit 0; fi; done; exit 1
|
||||
```
|
||||
|
||||
* Registrar este Pod con un servidor remoto desde la downward API con un comando como:
|
||||
|
||||
```shell
|
||||
curl -X POST http://$MANAGEMENT_SERVICE_HOST:$MANAGEMENT_SERVICE_PORT/register -d 'instance=$(<POD_NAME>)&ip=$(<POD_IP>)'
|
||||
```
|
||||
|
||||
* Esperar algo de tiempo antes de iniciar el contenedor de aplicación con un comando como:
|
||||
|
||||
```shell
|
||||
sleep 60
|
||||
```
|
||||
|
||||
* Clonar un repositorio de Git en un {{< glossary_tooltip text="Volume" term_id="volume" >}}
|
||||
|
||||
* Colocar valores en un archivo de configuración y ejecutar una herramienta de plantilla para generar
|
||||
dinámicamente un archivo de configuración para el contenedor de aplicación principal. Por ejemplo,
|
||||
colocar el valor `POD_IP` en una configuración y generar el archivo de configuración
|
||||
de la aplicación principal usando Jinja.
|
||||
|
||||
#### Contenedores de inicialización en uso
|
||||
|
||||
Este ejemplo define un simple Pod que tiene dos contenedores de inicialización.
|
||||
El primero espera por `myservice` y el segundo espera por `mydb`. Una vez que ambos
|
||||
contenedores de inicialización se completen, el Pod ejecuta el contenedor de aplicación desde su sección `spec`.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: myapp-pod
|
||||
labels:
|
||||
app: myapp
|
||||
spec:
|
||||
containers:
|
||||
- name: myapp-container
|
||||
image: busybox:1.28
|
||||
command: ['sh', '-c', 'echo ¡La aplicación se está ejecutando! && sleep 3600']
|
||||
initContainers:
|
||||
- name: init-myservice
|
||||
image: busybox:1.28
|
||||
command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo esperando a myservice; sleep 2; done"]
|
||||
- name: init-mydb
|
||||
image: busybox:1.28
|
||||
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo esperando a mydb; sleep 2; done"]
|
||||
```
|
||||
|
||||
Puedes iniciar este Pod ejecutando:
|
||||
|
||||
```shell
|
||||
kubectl apply -f myapp.yaml
|
||||
```
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
```shell
|
||||
pod/myapp-pod created
|
||||
```
|
||||
|
||||
Y verificar su estado con:
|
||||
|
||||
```shell
|
||||
kubectl get -f myapp.yaml
|
||||
```
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
```shell
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
myapp-pod 0/1 Init:0/2 0 6m
|
||||
```
|
||||
|
||||
o para más detalles:
|
||||
|
||||
```shell
|
||||
kubectl describe -f myapp.yaml
|
||||
```
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
```shell
|
||||
Name: myapp-pod
|
||||
Namespace: default
|
||||
[...]
|
||||
Labels: app=myapp
|
||||
Status: Pending
|
||||
[...]
|
||||
Init Containers:
|
||||
init-myservice:
|
||||
[...]
|
||||
State: Running
|
||||
[...]
|
||||
init-mydb:
|
||||
[...]
|
||||
State: Waiting
|
||||
Reason: PodInitializing
|
||||
Ready: False
|
||||
[...]
|
||||
Containers:
|
||||
myapp-container:
|
||||
[...]
|
||||
State: Waiting
|
||||
Reason: PodInitializing
|
||||
Ready: False
|
||||
[...]
|
||||
Events:
|
||||
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
|
||||
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||
16s 16s 1 {default-scheduler } Normal Scheduled Successfully assigned myapp-pod to 172.17.4.201
|
||||
16s 16s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Pulling pulling image "busybox"
|
||||
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Pulled Successfully pulled image "busybox"
|
||||
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Created Created container with docker id 5ced34a04634; Security:[seccomp=unconfined]
|
||||
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Started Started container with docker id 5ced34a04634
|
||||
```
|
||||
|
||||
Para ver los logs de los contenedores de inicialización en este Pod ejecuta:
|
||||
|
||||
```shell
|
||||
kubectl logs myapp-pod -c init-myservice # Inspecciona el primer contenedor de inicialización
|
||||
kubectl logs myapp-pod -c init-mydb # Inspecciona el segundo contenedor de inicialización
|
||||
```
|
||||
|
||||
En este punto, estos contenedores de inicialización estarán esperando para descubrir los Servicios denominados
|
||||
`mydb` y `myservice`.
|
||||
|
||||
Aquí hay una configuración que puedes usar para que aparezcan esos Servicios:
|
||||
|
||||
```yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: myservice
|
||||
spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 9376
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mydb
|
||||
spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 9377
|
||||
```
|
||||
|
||||
Para crear los servicios de `mydb` y `myservice`:
|
||||
|
||||
```shell
|
||||
kubectl apply -f services.yaml
|
||||
```
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
```shell
|
||||
service/myservice created
|
||||
service/mydb created
|
||||
```
|
||||
|
||||
Luego verás que esos contenedores de inicialización se completan y que el Pod `myapp-pod`
|
||||
pasa al estado `Running`:
|
||||
|
||||
```shell
|
||||
kubectl get -f myapp.yaml
|
||||
```
|
||||
|
||||
El resultado es similar a esto:
|
||||
|
||||
```shell
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
myapp-pod 1/1 Running 0 9m
|
||||
```
|
||||
|
||||
Este sencillo ejemplo debería servirte de inspiración para crear tus propios
|
||||
contenedores de inicialización. [¿Qué es lo que sigue?](#what-s-next) contiene un enlace a un ejemplo más detallado.
|
||||
|
||||
## Comportamiento detallado
|
||||
|
||||
Durante el inicio del Pod, kubelet retrasa la ejecución de contenedores de inicialización hasta que la red
|
||||
y el almacenamiento estén listos. Después, kubelet ejecuta los contenedores de inicialización del Pod en el orden que
|
||||
aparecen en la especificación del Pod.
|
||||
|
||||
Cada contenedor de inicialización debe salir correctamente antes de que
|
||||
comience el siguiente contenedor. Si un contenedor falla en iniciar debido al tiempo de ejecución o
|
||||
sale con una falla, se vuelve a intentar de acuerdo con el `restartPolicy` del Pod. Sin embargo,
|
||||
si el `restartPolicy` del Pod se establece en `Always`, los contenedores de inicialización usan
|
||||
el `restartPolicy` como `OnFailure`.
|
||||
|
||||
Un Pod no puede estar `Ready` sino hasta que todos los contenedores de inicialización hayan tenido éxito. Los puertos en un
|
||||
contenedor de inicialización no se agregan a un Servicio. Un Pod que se está inicializando,
|
||||
está en el estado de `Pending`, pero debe tener una condición `Initialized` configurada como falsa.
|
||||
|
||||
Si el Pod [se reinicia](#pod-restart-reasons) o es reiniciado, todos los contenedores de inicialización
|
||||
deben ejecutarse de nuevo.
|
||||
|
||||
Los cambios en la especificación del contenedor de inicialización se limitan al campo de la imagen del contenedor.
|
||||
Alterar un campo de la imagen del contenedor de inicialización equivale a reiniciar el Pod.
|
||||
|
||||
Debido a que los contenedores de inicialización se pueden reiniciar, reintentar o volverse a ejecutar, el código del contenedor de inicialización
|
||||
debe ser idempotente. En particular, el código que escribe en archivos en `EmptyDirs`
|
||||
debe estar preparado para la posibilidad de que ya exista un archivo de salida.
|
||||
|
||||
Los contenedores de inicialización tienen todos los campos de un contenedor de aplicaciones. Sin embargo, Kubernetes
|
||||
prohíbe el uso de `readinessProbe` porque los contenedores de inicialización no pueden
|
||||
definir el `readiness` distinto de la finalización. Esto se aplica durante la validación.
|
||||
|
||||
Usa `activeDeadlineSeconds` en el Pod para prevenir que los contenedores de inicialización fallen por siempre.
|
||||
La fecha límite incluye contenedores de inicialización.
|
||||
Sin embargo, se recomienda utilizar `activeDeadlineSeconds` si el usuario implementa su aplicación
|
||||
como un `Job` porque `activeDeadlineSeconds` tiene un efecto incluso después de que `initContainer` finaliza.
|
||||
El Pod que ya se está ejecutando correctamente sería eliminado por `activeDeadlineSeconds` si lo estableces.
|
||||
|
||||
El nombre de cada aplicación y contenedor de inicialización en un Pod debe ser único; un
|
||||
error de validación es arrojado para cualquier contenedor que comparta un nombre con otro.
|
||||
|
||||
### Recursos
|
||||
|
||||
Dado el orden y la ejecución de los contenedores de inicialización, las siguientes reglas
|
||||
para el uso de recursos se aplican:
|
||||
|
||||
* La solicitud más alta de cualquier recurso o límite particular definido en todos los contenedores
|
||||
de inicialización es la *solicitud/límite de inicialización efectiva*. Si algún recurso no tiene un
|
||||
límite de recursos especificado éste se considera como el límite más alto.
|
||||
* La *solicitud/límite efectiva* para un recurso es la más alta entre:
|
||||
* la suma de todas las solicitudes/límites de los contenedores de aplicación, y
|
||||
* la solicitud/límite de inicialización efectiva para un recurso
|
||||
* La planificación es hecha con base en las solicitudes/límites efectivos, lo que significa
|
||||
que los contenedores de inicialización pueden reservar recursos para la inicialización que no se utilizan
|
||||
durante la vida del Pod.
|
||||
* El nivel de `QoS` (calidad de servicio) del *nivel de `QoS` efectivo* del Pod es el
|
||||
nivel de `QoS` tanto para los contenedores de inicialización como para los contenedores de aplicación.
|
||||
|
||||
La cuota y los límites son aplicados con base en la solicitud y límite efectivos de Pod.
|
||||
|
||||
Los grupos de control de nivel de Pod (cgroups) se basan en la solicitud y el límite de Pod efectivos, al igual que el planificador de Kubernetes ({{< glossary_tooltip term_id="kube-scheduler" text="kube-scheduler" >}}).
|
||||
|
||||
### Razones de reinicio del Pod
|
||||
|
||||
Un Pod puede reiniciarse, provocando la re-ejecución de los contenedores de inicialización por las siguientes razones:
|
||||
|
||||
* Se reinicia el contenedor de infraestructura del Pod. Esto es poco común y debería hacerlo alguien con acceso de root a los nodos.
|
||||
* Todos los contenedores en un Pod son terminados mientras `restartPolicy` esté configurado en `Always`,
|
||||
forzando un reinicio y el registro de finalización del contenedor de inicialización se ha perdido debido a
|
||||
la recolección de basura.
|
||||
|
||||
El Pod no se reiniciará cuando se cambie la imagen del contenedor de inicialización o cuando
|
||||
se pierda el registro de finalización del contenedor de inicialización debido a la recolección de basura. Esto
|
||||
se aplica a Kubernetes v1.20 y posteriores. Si estás utilizando una versión anterior de
|
||||
Kubernetes, consulta la documentación de la versión que estás utilizando.
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
* Lee acerca de [creando un Pod que tiene un contenedor de inicialización](/docs/tasks/configure-pod-container/configure-pod-initialization/#create-a-pod-that-has-an-init-container)
|
||||
* Aprende cómo [depurar contenedores de inicialización](/docs/tasks/debug-application-cluster/debug-init-containers/)
|
|
@ -493,7 +493,7 @@ Si tienes alias para kubectl, puedes extender el completado de intérprete de co
|
|||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
Tras recargar tu intérprete de comandos, el auto-completado de kubectl debería funcionar.
|
||||
|
|
|
@ -245,7 +245,7 @@ sudo mkdir -p $DOWNLOAD_DIR
|
|||
Installez crictl (requis pour Kubeadm / Kubelet Container Runtime Interface (CRI))
|
||||
|
||||
```bash
|
||||
CRICTL_VERSION="v1.17.0"
|
||||
CRICTL_VERSION="v1.22.0"
|
||||
ARCH="amd64"
|
||||
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz
|
||||
```
|
||||
|
|
|
@ -457,7 +457,7 @@ Si vous avez un alias pour kubectl, vous pouvez étendre la completion de votre
|
|||
|
||||
```shell
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
Après avoir rechargé votre shell, l'auto-complétion de kubectl devrait fonctionner.
|
||||
|
|
|
@ -472,7 +472,7 @@ Jika kamu menggunakan alias untuk `kubectl`, kamu masih dapat menggunakan fitur
|
|||
|
||||
```shell
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
Setelah memuat ulang terminal, penyelesaian otomatis dari `kubectl` seharusnya sudah dapat bekerja.
|
||||
|
|
|
@ -35,7 +35,7 @@ Kubernetesには、デプロイ済みのコンテナ化されたアプリケー
|
|||
* [Volume](/docs/concepts/storage/volumes/)
|
||||
* [Namespace](/ja/docs/concepts/overview/working-with-objects/namespaces/)
|
||||
|
||||
Kubernetesには、[コントローラー](/docs/concepts/architecture/controller/)に依存して基本オブジェクトを構築し、追加の機能と便利な機能を提供する高レベルの抽象化も含まれています。これらには以下のものを含みます:
|
||||
Kubernetesには、[コントローラー](/ja/docs/concepts/architecture/controller/)に依存して基本オブジェクトを構築し、追加の機能と便利な機能を提供する高レベルの抽象化も含まれています。これらには以下のものを含みます:
|
||||
|
||||
* [Deployment](/ja/docs/concepts/workloads/controllers/deployment/)
|
||||
* [DaemonSet](/ja/docs/concepts/workloads/controllers/daemonset/)
|
||||
|
|
|
@ -142,7 +142,7 @@ Coilはベアメタルと比較して低いオーバーヘッドで操作する
|
|||
|
||||
### Contiv
|
||||
|
||||
[Contiv](https://github.com/contiv/netplugin) provides configurable networking (native l3 using BGP, overlay using vxlan, classic l2, or Cisco-SDN/ACI) for various use cases. [Contiv](https://contiv.io) is all open sourced.
|
||||
[Contiv](https://github.com/contiv/netplugin) provides configurable networking (native l3 using BGP, overlay using vxlan, classic l2, or Cisco-SDN/ACI) for various use cases.
|
||||
|
||||
### Contrail / Tungsten Fabric
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ weight: 10
|
|||
|
||||
*これは順序付けの必要性を意味します* - `Pod`がアクセスしたい`Service`は`Pod`自身の前に作らなければならず、そうしないと環境変数は注入されません。DNSにはこの制限はありません。
|
||||
|
||||
- (強くお勧めしますが)[クラスターアドオン](/docs/concepts/cluster-administration/addons/)の1つの選択肢はDNSサーバーです。DNSサーバーは、新しい`Service`についてKubernetes APIを監視し、それぞれに対して一連のDNSレコードを作成します。クラスタ全体でDNSが有効になっている場合は、すべての`Pod`が自動的に`Services`の名前解決を行えるはずです。
|
||||
- (強くお勧めしますが)[クラスターアドオン](/ja/docs/concepts/cluster-administration/addons/)の1つの選択肢はDNSサーバーです。DNSサーバーは、新しい`Service`についてKubernetes APIを監視し、それぞれに対して一連のDNSレコードを作成します。クラスタ全体でDNSが有効になっている場合は、すべての`Pod`が自動的に`Services`の名前解決を行えるはずです。
|
||||
|
||||
- どうしても必要な場合以外は、Podに`hostPort`を指定しないでください。Podを`hostPort`にバインドすると、Podがスケジュールできる場所の数を制限します、それぞれの<`hostIP`、 `hostPort`、`protocol`>の組み合わせはユニークでなければならないからです。`hostIP`と`protocol`を明示的に指定しないと、Kubernetesはデフォルトの`hostIP`として`0.0.0.0`を、デフォルトの `protocol`として`TCP`を使います。
|
||||
|
||||
|
@ -58,7 +58,7 @@ weight: 10
|
|||
|
||||
## ラベルの使用
|
||||
|
||||
- `{ app: myapp, tier: frontend, phase: test, deployment: v3 }`のように、アプリケーションまたはデプロイメントの __セマンティック属性__ を識別する[ラベル](/ja/docs/concepts/overview/working-with-objects/labels/)を定義して使いましょう。これらのラベルを使用して、他のリソースに適切なポッドを選択できます。例えば、すべての`tier:frontend`を持つPodを選択するServiceや、`app:myapp`に属するすべての`phase:test`コンポーネント、などです。このアプローチの例を知るには、[ゲストブック](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/guestbook/)アプリも合わせてご覧ください。
|
||||
- `{ app: myapp, tier: frontend, phase: test, deployment: v3 }`のように、アプリケーションまたはデプロイメントの __セマンティック属性__ を識別する[ラベル](/ja/docs/concepts/overview/working-with-objects/labels/)を定義して使いましょう。これらのラベルを使用して、他のリソースに適切なPodを選択できます。例えば、すべての`tier:frontend`を持つPodを選択するServiceや、`app:myapp`に属するすべての`phase:test`コンポーネント、などです。このアプローチの例を知るには、[ゲストブック](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/guestbook/)アプリも合わせてご覧ください。
|
||||
|
||||
セレクターからリリース固有のラベルを省略することで、Serviceを複数のDeploymentにまたがるように作成できます。 [Deployment](/ja/docs/concepts/workloads/controllers/deployment/)により、ダウンタイムなしで実行中のサービスを簡単に更新できます。
|
||||
|
||||
|
@ -68,7 +68,7 @@ weight: 10
|
|||
|
||||
## コンテナイメージ
|
||||
|
||||
[imagePullPolicy](/docs/concepts/containers/images/#updating-images)とイメージのタグは、[kubelet](/docs/reference/command-line-tools-reference/kubelet/)が特定のイメージをpullしようとしたときに作用します。
|
||||
[imagePullPolicy](/ja/docs/concepts/containers/images/#updating-images)とイメージのタグは、[kubelet](/docs/reference/command-line-tools-reference/kubelet/)が特定のイメージをpullしようとしたときに作用します。
|
||||
|
||||
- `imagePullPolicy: IfNotPresent`: ローカルでイメージが見つからない場合にのみイメージをpullします。
|
||||
|
||||
|
@ -96,8 +96,8 @@ weight: 10
|
|||
|
||||
- `kubectl apply -f <directory>`を使いましょう。これを使うと、ディレクトリ内のすべての`.yaml`、`.yml`、および`.json`ファイルが`apply`に渡されます。
|
||||
|
||||
- `get`や`delete`を行う際は、特定のオブジェクト名を指定するのではなくラベルセレクターを使いましょう。[ラベルセレクター](/ja/docs/concepts/overview/working-with-objects/labels/#label-selectors)と[ラベルの効果的な使い方](/docs/concepts/cluster-administration/manage-deployment/#using-labels-effectively)のセクションを参照してください。
|
||||
- `get`や`delete`を行う際は、特定のオブジェクト名を指定するのではなくラベルセレクターを使いましょう。[ラベルセレクター](/ja/docs/concepts/overview/working-with-objects/labels/#label-selectors)と[ラベルの効果的な使い方](/ja/docs/concepts/cluster-administration/manage-deployment/#using-labels-effectively)のセクションを参照してください。
|
||||
|
||||
- 単一コンテナのDeploymentやServiceを素早く作成するなら、`kubectl create deployment`や`kubectl expose`を使いましょう。一例として、[Serviceを利用したクラスター内のアプリケーションへのアクセス](/docs/tasks/access-application-cluster/service-access-application-cluster/)を参照してください。
|
||||
- 単一コンテナのDeploymentやServiceを素早く作成するなら、`kubectl create deployment`や`kubectl expose`を使いましょう。一例として、[Serviceを利用したクラスター内のアプリケーションへのアクセス](/ja/docs/tasks/access-application-cluster/service-access-application-cluster/)を参照してください。
|
||||
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ kube-controller-managerを使用すると、cloud-controller-managerは複数の
|
|||
アドオンはクラスター機能を実装するためにKubernetesリソース({{< glossary_tooltip term_id="daemonset" >}}、{{< glossary_tooltip term_id="deployment" >}}など)を使用します。
|
||||
アドオンはクラスターレベルの機能を提供しているため、アドオンのリソースで名前空間が必要なものは`kube-system`名前空間に属します。
|
||||
|
||||
いくつかのアドオンについて以下で説明します。より多くの利用可能なアドオンのリストは、[アドオン](/docs/concepts/cluster-administration/addons/) をご覧ください。
|
||||
いくつかのアドオンについて以下で説明します。より多くの利用可能なアドオンのリストは、[アドオン](/ja/docs/concepts/cluster-administration/addons/) をご覧ください。
|
||||
|
||||
### DNS
|
||||
|
||||
|
@ -115,7 +115,7 @@ Kubernetesによって開始されたコンテナは、DNS検索にこのDNSサ
|
|||
## {{% heading "whatsnext" %}}
|
||||
|
||||
* [ノード](/ja/docs/concepts/architecture/nodes/)について学ぶ
|
||||
* [コントローラー](/docs/concepts/architecture/controller/)について学ぶ
|
||||
* [コントローラー](/ja/docs/concepts/architecture/controller/)について学ぶ
|
||||
* [kube-scheduler](/ja/docs/concepts/scheduling-eviction/kube-scheduler/)について学ぶ
|
||||
* etcdの公式 [ドキュメント](https://etcd.io/docs/)を読む
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ Amazon Web Services | https://aws.amazon.com/security/ |
|
|||
Google Cloud Platform | https://cloud.google.com/security/ |
|
||||
IBM Cloud | https://www.ibm.com/cloud/security |
|
||||
Microsoft Azure | https://docs.microsoft.com/en-us/azure/security/azure-security |
|
||||
Oracle Cloud Infrastructure | https://www.oracle.com/security/ |
|
||||
VMWare VSphere | https://www.vmware.com/security/hardening-guides.html |
|
||||
|
||||
{{< /table >}}
|
||||
|
|
|
@ -19,10 +19,10 @@ Podはその生存期間に1回だけ[スケジューリング](/docs/concepts/s
|
|||
|
||||
## Podのライフタイム
|
||||
|
||||
個々のアプリケーションコンテナと同様に、Podは(永続的ではなく)比較的短期間の存在と捉えられます。Podが作成されると、一意のID([UID](ja/docs/concepts/overview/working-with-objects/names/#uids))が割り当てられ、(再起動ポリシーに従って)終了または削除されるまでNodeで実行されるようにスケジュールされます。
|
||||
個々のアプリケーションコンテナと同様に、Podは(永続的ではなく)比較的短期間の存在と捉えられます。Podが作成されると、一意のID([UID](/ja/docs/concepts/overview/working-with-objects/names/#uids))が割り当てられ、(再起動ポリシーに従って)終了または削除されるまでNodeで実行されるようにスケジュールされます。
|
||||
{{< glossary_tooltip term_id="node" >}}が停止した場合、そのNodeにスケジュールされたPodは、タイムアウト時間の経過後に[削除](#pod-garbage-collection)されます。
|
||||
|
||||
Pod自体は、自己修復しません。Podが{{< glossary_tooltip text="node" term_id="node" >}}にスケジュールされ、その後に失敗、またはスケジュール操作自体が失敗した場合、Podは削除されます。同様に、リソースの不足またはNodeのメンテナンスによりポッドはNodeから立ち退きます。Kubernetesは、比較的使い捨てのPodインスタンスの管理作業を処理する、{{< glossary_tooltip term_id="controller" text="controller" >}}と呼ばれる上位レベルの抽象化を使用します。
|
||||
Pod自体は、自己修復しません。Podが{{< glossary_tooltip text="node" term_id="node" >}}にスケジュールされ、その後に失敗、またはスケジュール操作自体が失敗した場合、Podは削除されます。同様に、リソースの不足またはNodeのメンテナンスによりPodはNodeから立ち退きます。Kubernetesは、比較的使い捨てのPodインスタンスの管理作業を処理する、{{< glossary_tooltip term_id="controller" text="controller" >}}と呼ばれる上位レベルの抽象化を使用します。
|
||||
|
||||
特定のPod(UIDで定義)は新しいNodeに"再スケジュール"されません。代わりに、必要に応じて同じ名前で、新しいUIDを持つ同一のPodに置き換えることができます。
|
||||
|
||||
|
@ -55,7 +55,7 @@ Nodeが停止するか、クラスタの残りの部分から切断された場
|
|||
|
||||
## コンテナのステータス {#container-states}
|
||||
|
||||
Pod全体の[フェーズ](#pod-phase)と同様に、KubernetesはPod内の各コンテナの状態を追跡します。[container lifecycle hooks](/docs/concepts/containers/container-lifecycle-hooks/)を使用して、コンテナのライフサイクルの特定のポイントで実行するイベントをトリガーできます。
|
||||
Pod全体の[フェーズ](#pod-phase)と同様に、KubernetesはPod内の各コンテナの状態を追跡します。[container lifecycle hooks](/ja/docs/concepts/containers/container-lifecycle-hooks/)を使用して、コンテナのライフサイクルの特定のポイントで実行するイベントをトリガーできます。
|
||||
|
||||
Podが{{< glossary_tooltip text="scheduler" term_id="kube-scheduler" >}}によってNodeに割り当てられると、kubeletは{{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}を使用してコンテナの作成を開始します。コンテナの状態は`Waiting`、`Running`または`Terminated`の3ついずれかです。
|
||||
|
||||
|
@ -211,7 +211,7 @@ Podが削除されたときにリクエストを来ないようにするため
|
|||
|
||||
{{< feature-state for_k8s_version="v1.18" state="beta" >}}
|
||||
|
||||
startupProbeは、サービスの開始に時間がかかるコンテナを持つポッドに役立ちます。livenessProbeの間隔を長く設定するのではなく、コンテナの起動時に別のProbeを構成して、livenessProbeの間隔よりも長い時間を許可できます。
|
||||
startupProbeは、サービスの開始に時間がかかるコンテナを持つPodに役立ちます。livenessProbeの間隔を長く設定するのではなく、コンテナの起動時に別のProbeを構成して、livenessProbeの間隔よりも長い時間を許可できます。
|
||||
コンテナの起動時間が、`initialDelaySeconds + failureThreshold x periodSeconds`よりも長い場合は、livenessProbeと同じエンドポイントをチェックするためにstartupProbeを指定します。`periodSeconds`のデフォルトは30秒です。次に、`failureThreshold`をlivenessProbeのデフォルト値を変更せずにコンテナが起動できるように、十分に高い値を設定します。これによりデッドロックを防ぐことができます。
|
||||
|
||||
## Podの終了 {#pod-termination}
|
||||
|
@ -220,7 +220,7 @@ Podは、クラスター内のNodeで実行中のプロセスを表すため、
|
|||
|
||||
ユーザーは削除を要求可能であるべきで、プロセスがいつ終了するかを知ることができなければなりませんが、削除が最終的に完了することも保証できるべきです。ユーザーがPodの削除を要求すると、システムはPodが強制終了される前に意図された猶予期間を記録および追跡します。強制削除までの猶予期間がある場合、{{< glossary_tooltip text="kubelet" term_id="kubelet" >}}正常な終了を試みます。
|
||||
|
||||
通常、コンテナランタイムは各コンテナのメインプロセスにTERMシグナルを送信します。多くのコンテナランタイムは、コンテナイメージで定義されたSTOPSIGNAL値を尊重し、TERMの代わりにこれを送信します。猶予期間が終了すると、プロセスにKILLシグナルが送信され、Podは{{< glossary_tooltip text="API Server" term_id="kube-apiserver" >}}から削除されます。プロセスの終了を待っている間にkubeletかコンテナランタイムの管理サービスが再起動されると、クラスターは元の猶予期間を含めて、最初からリトライされます。
|
||||
通常、コンテナランタイムは各コンテナのメインプロセスにTERMシグナルを送信します。多くのコンテナランタイムは、コンテナイメージで定義されたSTOPSIGNAL値を尊重し、TERMシグナルの代わりにこれを送信します。猶予期間が終了すると、プロセスにKILLシグナルが送信され、Podは{{< glossary_tooltip text="API server" term_id="kube-apiserver" >}}から削除されます。プロセスの終了を待っている間にkubeletかコンテナランタイムの管理サービスが再起動されると、クラスターは元の猶予期間を含めて、最初からリトライされます。
|
||||
|
||||
フローの例は下のようになります。
|
||||
|
||||
|
@ -228,7 +228,7 @@ Podは、クラスター内のNodeで実行中のプロセスを表すため、
|
|||
1. API server内のPodは、猶予期間を越えるとPodが「死んでいる」と見なされるように更新される。
|
||||
削除中のPodに対して`kubectl describe`コマンドを使用すると、Podは「終了中」と表示される。
|
||||
Podが実行されているNode上で、Podが終了しているとマークされている(正常な終了期間が設定されている)とkubeletが認識するとすぐに、kubeletはローカルでPodの終了プロセスを開始します。
|
||||
1. Pod内のコンテナの1つが`preStop`[フック](/docs/concepts/containers/container-lifecycle-hooks/#hook-details)を定義している場合は、コンテナの内側で呼び出される。猶予期間が終了した後も `preStop`フックがまだ実行されている場合は、一度だけ猶予期間を延長される(2秒)。
|
||||
1. Pod内のコンテナの1つが`preStop`[フック](/ja/docs/concepts/containers/container-lifecycle-hooks/#hook-details)を定義している場合は、コンテナの内側で呼び出される。猶予期間が終了した後も `preStop`フックがまだ実行されている場合は、一度だけ猶予期間を延長される(2秒)。
|
||||
{{< note >}}
|
||||
`preStop`フックが完了するまでにより長い時間が必要な場合は、`terminationGracePeriodSeconds`を変更する必要があります。
|
||||
{{< /note >}}
|
||||
|
@ -271,10 +271,10 @@ StatefulSetのPodについては、[StatefulSetからPodを削除するための
|
|||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* [attaching handlers to Container lifecycle events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオンをやってみる
|
||||
* [attaching handlers to Container lifecycle events](/ja/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオンをやってみる
|
||||
|
||||
* [Configure Liveness, Readiness and Startup Probes](/ja/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)のハンズオンをやってみる
|
||||
|
||||
* [Container lifecycle hooks](/docs/concepts/containers/container-lifecycle-hooks/)についてもっと学ぶ
|
||||
* [Container lifecycle hooks](/ja/docs/concepts/containers/container-lifecycle-hooks/)についてもっと学ぶ
|
||||
|
||||
* APIのPod/コンテナステータスの詳細情報は[PodStatus](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podstatus-v1-core)および[ContainerStatus](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#containerstatus-v1-core)を参照してください
|
||||
|
|
|
@ -698,7 +698,7 @@ Secretsの内容を読み取るとNamespaceのServiceAccountのクレデンシ
|
|||
<tr>
|
||||
<td><b>system:persistent-volume-provisioner</b></td>
|
||||
<td>None</td>
|
||||
<td>ほとんどの<a href="/ja/docs/concepts/storage/persistent-volumes/#provisioner">dynamic volume provisioners</a>が必要とするリソースへのアクセスを許可します。</td>
|
||||
<td>ほとんどの<a href="/ja/docs/concepts/storage/persistent-volumes/#dynamic">dynamic volume provisioners</a>が必要とするリソースへのアクセスを許可します。</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Windowsアプリケーションは、多くの組織で実行されているサ
|
|||
|
||||
KubernetesでWindowsコンテナのオーケストレーションを有効にする方法は、既存のLinuxクラスターにWindowsノードを含めるだけです。Kubernetesの{{< glossary_tooltip text="Pod" term_id="pod" >}}でWindowsコンテナをスケジュールすることは、Linuxベースのコンテナをスケジュールするのと同じくらいシンプルで簡単です。
|
||||
|
||||
Windowsコンテナを実行するには、Kubernetesクラスターに複数のオペレーティングシステムを含める必要があります。コントロールプレーンノードはLinux、ワーカーノードはワークロードのニーズに応じてWindowsまたはLinuxで実行します。Windows Server 2019は、サポートされている唯一のWindowsオペレーティングシステムであり、Windows (kubelet、[コンテナランタイム](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/containerd)、kube-proxyを含む)で[Kubernetesノード](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture.md#the-kubernetes-node)を有効にします。Windowsディストリビューションチャンネルの詳細については、[Microsoftのドキュメント](https://docs.microsoft.com/en-us/windows-server/get-started-19/servicing-channels-19)を参照してください。
|
||||
Windowsコンテナを実行するには、Kubernetesクラスターに複数のオペレーティングシステムを含める必要があります。コントロールプレーンノードはLinux、ワーカーノードはワークロードのニーズに応じてWindowsまたはLinuxで実行します。Windows Server 2019は、サポートされている唯一のWindowsオペレーティングシステムであり、Windows (kubelet、[コンテナランタイム](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/containerd)、kube-proxyを含む)で[Kubernetesノード](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture.md#the-kubernetes-node)を有効にします。Windowsディストリビューションチャンネルの詳細については、[Microsoftのドキュメント](https://docs.microsoft.com/en-us/windows-server/get-started/servicing-channels-comparison)を参照してください。
|
||||
|
||||
{{< note >}}
|
||||
[マスターコンポーネント](/ja/docs/concepts/overview/components/)を含むKubernetesコントロールプレーンは、Linuxで実行し続けます。WindowsのみのKubernetesクラスターを導入する計画はありません。
|
||||
|
|
|
@ -14,7 +14,7 @@ weight: 50
|
|||
* StatefulSetはKubernetesバージョン1.5以降でのみ利用可能です。
|
||||
Kubernetesのバージョンを確認するには、`kubectl version`を実行してください。
|
||||
|
||||
* すべてのステートフルアプリケーションがうまくスケールできるわけではありません。StatefulSetがスケールするかどうかわからない場合は、[StatefulSetの概念](/ja/docs/concepts/workloads/controllers/statefulset/)または[StatefulSetのチュートリアル](/docs/tutorials/stateful-application/basic-stateful-set/)を参照してください。
|
||||
* すべてのステートフルアプリケーションがうまくスケールできるわけではありません。StatefulSetがスケールするかどうかわからない場合は、[StatefulSetの概念](/ja/docs/concepts/workloads/controllers/statefulset/)または[StatefulSetのチュートリアル](/ja/docs/tutorials/stateful-application/basic-stateful-set/)を参照してください。
|
||||
|
||||
* ステートフルアプリケーションクラスターが完全に健全であると確信できる場合にのみ、スケーリングを実行してください。
|
||||
|
||||
|
@ -40,7 +40,7 @@ kubectl scale statefulsets <stateful-set-name> --replicas=<new-replicas>
|
|||
|
||||
### StatefulSetのインプレースアップデート
|
||||
|
||||
コマンドライン上でレプリカ数を変更する代わりに、StatefulSetに[インプレースアップデート](/docs/concepts/cluster-administration/manage-deployment/#in-place-updates-of-resources)が可能です。
|
||||
コマンドライン上でレプリカ数を変更する代わりに、StatefulSetに[インプレースアップデート](/ja/docs/concepts/cluster-administration/manage-deployment/#in-place-updates-of-resources)が可能です。
|
||||
|
||||
StatefulSetが最初に `kubectl apply`で作成されたのなら、StatefulSetマニフェストの`.spec.replicas`を更新してから、`kubectl apply`を実行します:
|
||||
|
||||
|
|
|
@ -484,7 +484,7 @@ kubectlにエイリアスを張っている場合は、以下のようにシェ
|
|||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
|
||||
|
|
|
@ -183,7 +183,7 @@ kubectl get events | grep hello-apparmor
|
|||
コンテナがこのプロファイルで実際に実行されていることを確認するために、コンテナのproc attrをチェックします。
|
||||
|
||||
```shell
|
||||
kubectl exec hello-apparmor cat /proc/1/attr/current
|
||||
kubectl exec hello-apparmor -- cat /proc/1/attr/current
|
||||
```
|
||||
```
|
||||
k8s-apparmor-example-deny-write (enforce)
|
||||
|
@ -192,7 +192,7 @@ k8s-apparmor-example-deny-write (enforce)
|
|||
最後に、ファイルへの書き込みを行おうとすることで、プロファイルに違反すると何が起こるか見てみましょう。
|
||||
|
||||
```shell
|
||||
kubectl exec hello-apparmor touch /tmp/test
|
||||
kubectl exec hello-apparmor touch -- /tmp/test
|
||||
```
|
||||
```
|
||||
touch: /tmp/test: Permission denied
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: 쿠버네티스 보안과 공개 정보
|
||||
aliases: [/security/]
|
||||
aliases: [/ko/security/]
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ kubectl에 대한 앨리어스가 있는 경우, 해당 앨리어스로 작업
|
|||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
셸을 다시 로드하면, kubectl 자동 완성 기능이 작동할 것이다.
|
||||
|
|
|
@ -26,13 +26,15 @@ Przed zapoznaniem się z samouczkami warto stworzyć zakładkę do
|
|||
|
||||
## Konfiguracja
|
||||
|
||||
[Konfiguracja serwera Redis z użyciem ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
|
||||
* [Configuring a Java Microservice](/docs/tutorials/configuration/configure-java-microservice/)
|
||||
|
||||
* [Configuring Redis Using a ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
|
||||
|
||||
## Aplikacje bezstanowe *(Stateless Applications)*
|
||||
|
||||
* [Exposing an External IP Address to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address/)
|
||||
|
||||
* [Example: Deploying PHP Guestbook application with MongoDB](/docs/tutorials/stateless-application/guestbook/)
|
||||
* [Example: Deploying PHP Guestbook application with Redis](/docs/tutorials/stateless-application/guestbook/)
|
||||
|
||||
## Aplikacje stanowe *(Stateful Applications)*
|
||||
|
||||
|
|
|
@ -43,10 +43,10 @@ W tym samouczku wykorzystamy obraz kontenera, który korzysta z NGINX, aby wyśw
|
|||
{{< kat-button >}}
|
||||
|
||||
{{< note >}}
|
||||
Jeśli masz minikube zainstalowane lokalnie, uruchom `minikube start`.
|
||||
Jeśli masz minikube zainstalowane lokalnie, uruchom `minikube start`. Przed uruchomieniem `minikube dashboard`, otwórz okno nowego terminala, uruchom w nim `minikube dashboard` i przełącz się z powrotem do okna głównego terminala.
|
||||
{{< /note >}}
|
||||
|
||||
2. Otwórz panel Kubernetes w przeglądarce:
|
||||
2. Otwórz panel Kubernetesa w przeglądarce:
|
||||
|
||||
```shell
|
||||
minikube dashboard
|
||||
|
@ -56,13 +56,35 @@ W tym samouczku wykorzystamy obraz kontenera, który korzysta z NGINX, aby wyśw
|
|||
|
||||
4. Tylko w Katacoda: Wpisz `30000`i kliknij **Display Port**.
|
||||
|
||||
{{< note >}}
|
||||
Polecenie `dashboard` uruchamia dodatek panelu i otwiera proxy w domyślnej przeglądarce.
|
||||
W panelu można tworzyć różne obiekty Kubernetesa, takie jak _Deployment_ czy _Serwis_.
|
||||
|
||||
Jeśli pracujesz z uprawnieniami roota, skorzystaj z: [Otwieranie panelu poprzez URL](#otwieranie-panelu-poprzez-url).
|
||||
|
||||
Panel jest domyślnie dostępny jedynie z wewnętrznej sieci Kubernetesa.
|
||||
Polecenie `dashboard` tworzy tymczasowe proxy, które udostępnia panel także poza tą wewnętrzną sieć.
|
||||
|
||||
Aby zatrzymać proxy, wciśnij `Ctrl+C` i zakończ proces.
|
||||
Panel ciągle działa na klastrze Kubernetesa, nawet po przerwaniu działania proxy.
|
||||
Aby dostać się ponownie do panelu, trzeba stworzyć kolejne proxy poleceniem `dashboard`.
|
||||
{{< /note >}}
|
||||
|
||||
## Otwieranie panelu poprzez URL
|
||||
|
||||
Jeśli nie chcesz otwierać przeglądarki, uruchom panel z opcją `--url`, aby wyświetlić URL:
|
||||
|
||||
```shell
|
||||
minikube dashboard --url
|
||||
```
|
||||
|
||||
## Stwórz Deployment
|
||||
|
||||
[*Pod*](/docs/concepts/workloads/pods/) w Kubernetes to grupa jednego lub wielu kontenerów
|
||||
połączonych ze sobą na potrzeby administrowania i dostępu sieci. W tym samouczku Pod
|
||||
[*Pod*](/docs/concepts/workloads/pods/) w Kubernetesie to grupa jednego lub wielu kontenerów
|
||||
połączonych ze sobą na potrzeby administrowania i dostępu sieci. W tym samouczku Pod
|
||||
zawiera tylko jeden kontener. [*Deployment*](/docs/concepts/workloads/controllers/deployment/)
|
||||
w Kubernetes monitoruje stan twojego Poda
|
||||
i restartuje należący do niego kontener, jeśli ten z jakichś powodów przestanie działać.
|
||||
w Kubernetesie monitoruje stan twojego Poda
|
||||
i restartuje należące do niego kontenery, jeśli z jakichś powodów przestaną działać.
|
||||
Użycie Deploymentu to rekomendowana metoda zarządzania tworzeniem i skalowaniem Podów.
|
||||
|
||||
1. Użyj polecenia `kubectl create` do stworzenia Deploymentu, który będzie zarządzał Podem. Pod uruchamia kontener
|
||||
|
@ -118,7 +140,7 @@ wykorzystując podany obraz Dockera.
|
|||
|
||||
Domyślnie Pod jest dostępny tylko poprzez swój wewnętrzny adres IP
|
||||
wewnątrz klastra Kubernetes. Aby kontener `hello-node` był osiągalny spoza
|
||||
wirtualnej sieci Kubernetes, musisz najpierw udostępnić Pod
|
||||
wirtualnej sieci Kubernetesa, musisz najpierw udostępnić Pod
|
||||
jako [*Serwis*](/docs/concepts/services-networking/service/) Kubernetes.
|
||||
|
||||
1. Udostępnij Pod w Internecie przy pomocy polecenia `kubectl expose`:
|
||||
|
@ -205,10 +227,10 @@ Narzędzie minikube dysponuje zestawem wbudowanych {{< glossary_tooltip text="do
|
|||
Wynik powinien wyglądać podobnie do:
|
||||
|
||||
```
|
||||
metrics-server was successfully enabled
|
||||
The 'metrics-server' addon is enabled
|
||||
```
|
||||
|
||||
3. Sprawdź Pod i Serwis, który właśnie stworzyłeś:
|
||||
3. Sprawdź Pody i Serwisy, który właśnie stworzyłeś:
|
||||
|
||||
```shell
|
||||
kubectl get pod,svc -n kube-system
|
||||
|
|
|
@ -29,11 +29,11 @@ weight: 10
|
|||
<div class="col-md-8">
|
||||
<h3>Klaster Kubernetes</h3>
|
||||
<p>
|
||||
<b>Zadaniem Kubernetes jest koordynacja wysoko dostępnego klastra komputerów działającego jako jedna całość.</b> Obiekty abstrakcyjne Kubernetes pozwalają instalować (uruchamiać) aplikacje w kontenerach bez przypisywania ich do konkretnej maszyny. Aby móc korzystać z tego nowego modelu instalacji, aplikacje muszą być przygotowane w taki sposób, aby były niezależne od konkretnego serwera: muszą być skonteneryzowane. Aplikacje w kontenerach są bardziej elastyczne przy instalacji, niż to miało miejsce w poprzednich modelach, kiedy aplikacje były instalowane bezpośrednio na konkretne maszyny jako pakiety ściśle powiązane z konkretną maszyną. <b>Kubernetes automatyzuje dystrybucję i zlecanie uruchamiania aplikacji na klastrze w bardziej efektywny sposób.</b> Kubernetes jest platformą otwartego oprogramowania, gotowym do pracy w środowiskach produkcyjnych.
|
||||
<b>Zadaniem Kubernetesa jest zarządzanie klastrem komputerów o wysokiej dostępności, działającego jako jedna całość.</b> Kubernetes, poprzez swój system obiektów abstrakcyjnych, umożliwia uruchamianie aplikacji w kontenerach bez przypisywania ich do konkretnej maszyny. Aby móc korzystać z tego nowego modelu instalacji, aplikacje muszą być przygotowane w taki sposób, aby były niezależne od konkretnego serwera: muszą być skonteneryzowane. Aplikacje w kontenerach są bardziej elastyczne przy instalacji, niż to miało miejsce w poprzednich modelach, kiedy aplikacje były instalowane bezpośrednio na konkretne maszyny jako pakiety ściśle powiązane z tą maszyną. <b>Kubernetes automatyzuje dystrybucję i zlecanie uruchamiania aplikacji na klastrze w bardziej efektywny sposób.</b> Kubernetes jest platformą otwartego oprogramowania, gotowym do pracy w środowiskach produkcyjnych.
|
||||
</p>
|
||||
<p>Klaster Kubernetes składa się z dwóch rodzajów zasobów:
|
||||
<ul>
|
||||
<li><b>Master</b> koordynuje działanie klastra</li>
|
||||
<li><b>Warstwa sterowania</b> koordynuje działanie klastra</li>
|
||||
<li>Na <b>węzłach <i>(nodes)</i></b> uruchamiane są aplikacje</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
@ -71,22 +71,22 @@ weight: 10
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><b>Master odpowiada za zarządzanie klastrem.</b> Master koordynuje wszystkie działania klastra, takie jak zlecanie uruchomienia aplikacji, utrzymywanie pożądanego stanu aplikacji, skalowanie aplikacji i instalowanie nowych wersji.</p>
|
||||
<p><b>Węzeł to maszyna wirtualna (VM) lub fizyczny serwer, który jest maszyną roboczą w klastrze Kubernetes.</b> Na każdym węźle działa Kubelet, agent zarządzający tym węzłem i komunikujący się z masterem Kubernetes. Węzeł zawiera także narzędzia do obsługi kontenerów, takie jak containerd lub Docker. Klaster Kubernetes w środowisku produkcyjnym powinien składać się minimum z trzech węzłów.</p>
|
||||
<p><b>Warstwa sterowania odpowiada za zarządzanie klastrem.</b> Warstwa sterowania koordynuje wszystkie działania klastra, takie jak zlecanie uruchomienia aplikacji, utrzymywanie pożądanego stanu aplikacji, skalowanie aplikacji i instalowanie nowych wersji.</p>
|
||||
<p><b>Węzeł to maszyna wirtualna (VM) lub fizyczny serwer, który jest maszyną roboczą w klastrze Kubernetes.</b> Na każdym węźle działa Kubelet, agent zarządzający tym węzłem i komunikujący się z warstwą sterowania Kubernetesa. Węzeł zawiera także narzędzia do obsługi kontenerów, takie jak containerd lub Docker. Klaster Kubernetes w środowisku produkcyjnym powinien składać się minimum z trzech węzłów.</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>Węzły typu master zarządzają klastrem i węzłami wykorzystywanymi do uruchamiania aplikacji. </i></p>
|
||||
<p><i>Warstwa sterowania zarządza klastrem i węzłami wykorzystywanymi do uruchamiania aplikacji.</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>Kiedy instalujesz aplikację na Kubernetes, polecasz masterowi uruchomienie kontenera z aplikacją. Master zleca uruchomienie kontenera na węzłach klastra. <b>Węzły komunikują się z masterem przy użyciu <a href="/docs/concepts/overview/kubernetes-api/">Kubernetes API</a></b>, wystawianego przez mastera. Użytkownicy końcowi mogą korzystać bezpośrednio z Kubernetes API do komunikacji z klastrem.</p>
|
||||
<p>Kiedy instalujesz aplikację na Kubernetesie, zlecasz warstwie sterowania uruchomienie kontenera z aplikacją. Warstwa sterowania zleca uruchomienie kontenera na węzłach klastra. <b>Węzły komunikują się z warstwą sterowania przy użyciu <a href="/docs/concepts/overview/kubernetes-api/">API Kubernetesa</a></b>, udostępnianego poprzez warstwę sterowania. Użytkownicy końcowi mogą korzystać bezpośrednio z API Kubernetesa do komunikacji z klastrem.</p>
|
||||
|
||||
<p>Klaster Kubernetes może być zainstalowany zarówno na fizycznych, jak i na maszynach wirtualnych. Aby wypróbować Kubernetes, można też wykorzystać Minikube. Minikube to "lekka" implementacja Kubernetes, która tworzy VM na maszynie lokalnej i instaluje prosty klaster składający się tylko z jednego węzła. Minikube jest dostępne na systemy Linux, macOS i Windows. Narzędzie linii poleceń Minikube obsługuje podstawowe operacje na klastrze, takie jak start, stop, informacje o stanie i usunięcie klastra. Na potrzeby tego samouczka wykorzystamy jednak terminal online z zainstalowanym już wcześniej Minikube.</p>
|
||||
<p>Klaster Kubernetes może być zainstalowany zarówno na fizycznych, jak i na maszynach wirtualnych. Aby wypróbować Kubernetesa, można też wykorzystać Minikube. Minikube to "lekka" implementacja Kubernetesa, która tworzy VM na maszynie lokalnej i instaluje prosty klaster składający się tylko z jednego węzła. Minikube jest dostępny na systemy Linux, macOS i Windows. Narzędzie linii poleceń Minikube obsługuje podstawowe operacje na klastrze, takie jak start, stop, prezentacja informacji jego stanie i usunięcie klastra. Na potrzeby tego samouczka wykorzystamy jednak terminal online z zainstalowanym już wcześniej Minikube.</p>
|
||||
|
||||
<p>Teraz, kiedy już wiesz, co to jest Kubernetes, przejdźmy do samouczka online i stwórzmy nasz pierwszy klaster!</p>
|
||||
|
||||
|
|
|
@ -74,11 +74,11 @@ weight: 10
|
|||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>Węzły</h2>
|
||||
<p>Pod jest uruchamiany na <b>węźle <em>(Node)</em></b>. Węzeł jest maszyną roboczą, fizyczną lub wirtualną, w zależności od klastra. Każdy z węzłów jest zarządzany przez węzeł główny <em>(Master)</em>. Węzeł może zawierać wiele podów. Kubernetes master automatycznie zleca uruchomienie podów na różnych węzłach w ramach klastra. Automatyczne zlecanie uruchomienia bierze pod uwagę zasoby dostępne na każdym z węzłów.</p>
|
||||
<p>Pod jest uruchamiany na <b>węźle <em>(Node)</em></b>. Węzeł jest maszyną roboczą, fizyczną lub wirtualną, w zależności od klastra. Każdy z węzłów jest zarządzany przez warstwę sterowania <em>(Control Plane)</em>. Węzeł może zawierać wiele podów. Warstwa sterowania Kubernetesa automatycznie zleca uruchomienie podów na różnych węzłach w ramach klastra. Automatyczne zlecanie uruchomienia bierze pod uwagę zasoby dostępne na każdym z węzłów.</p>
|
||||
|
||||
<p>Na każdym węźle Kubernetes działają co najmniej:</p>
|
||||
<ul>
|
||||
<li>Kubelet, proces odpowiedzialny za komunikację pomiędzy Kubernetes Master i węzłami; zarządza podami i kontenerami działającymi na maszynie.</li>
|
||||
<li>Kubelet, proces odpowiedzialny za komunikację pomiędzy warstwą sterowania Kubernetesa i węzłami; zarządza podami i kontenerami działającymi na maszynie.</li>
|
||||
<li>Proces wykonawczy kontenera (np. Docker), który zajmuje się pobraniem obrazu dla kontenera z repozytorium, rozpakowaniem kontenera i uruchomieniem aplikacji.</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ weight: 10
|
|||
<div class="col-md-8">
|
||||
<h3>Cele</h3>
|
||||
<ul>
|
||||
<li>Poznać Serwis w Kubernetes</li>
|
||||
<li>Poznać Serwis w Kubernetesie</li>
|
||||
<li>Zrozumieć, jak obiekty Label i LabelSelector są powiązane z Serwisem</li>
|
||||
<li>Udostępnić aplikację na zewnątrz klastra Kubernetes korzystając z Serwisu</li>
|
||||
</ul>
|
||||
|
@ -37,7 +37,7 @@ weight: 10
|
|||
<li><i>ClusterIP</i> (domyślnie) - Wystawia serwis poprzez wewnętrzny adres IP w klastrze. W ten sposób serwis jest dostępny tylko wewnątrz klastra.</li>
|
||||
<li><i>NodePort</i> - Wystawia serwis na tym samym porcie na każdym z wybranych węzłów klastra przy pomocy NAT. W ten sposób serwis jest dostępny z zewnątrz klastra poprzez <code><NodeIP>:<NodePort></code>. Nadzbiór ClusterIP.</li>
|
||||
<li><i>LoadBalancer</i> - Tworzy zewnętrzny load balancer u bieżącego dostawcy usług chmurowych (o ile jest taka możliwość) i przypisuje serwisowi stały, zewnętrzny adres IP. Nadzbiór NodePort.</li>
|
||||
<li><i>ExternalName</i> - Wystawia Service przy pomocy wybranej nazwy (wyspecyfikowanej jako <code>externalName</code>) poprzez zwracanie wartości rekordu CNAME przypisanego w usłudze DNS. W tym przypadku nie jest wykorzystywany proces przekierowania ruchu metodą proxy. Ten typ wymaga wersji v1.7 lub wyższej usługi <code>kube-dns</code>.</li>
|
||||
<li><i>ExternalName</i> - Przypisuje Service do <code>externalName</code> (np. <code>foo.bar.example.com</code>), zwracając rekord <code>CNAME</code> wraz z zawartością. W tym przypadku nie jest wykorzystywany proces przekierowania ruchu metodą proxy. Ta metoda wymaga <code>kube-dns</code> w wersji v1.7 lub wyższej lub CoreDNS w wersji 0.0.8 lub wyższej.</li>
|
||||
</ul>
|
||||
<p>Więcej informacji na temat różnych typów serwisów znajduje się w samouczku <a href="/docs/tutorials/services/source-ip/">Używanie adresu źródłowego (Source IP)</a>. Warto też zapoznać się z <a href="/docs/concepts/services-networking/connect-applications-service">Łączeniem Aplikacji z Serwisami</a>.</p>
|
||||
<p>W pewnych przypadkach w serwisie nie specyfikuje się <code>selector</code>. Serwis, który został stworzony bez pola <code>selector</code>, nie utworzy odpowiedniego obiektu Endpoints. W ten sposób użytkownik ma możliwość ręcznego przyporządkowania serwisu do konkretnych endpoints. Inny przypadek, kiedy nie używa się selektora, ma miejsce, kiedy stosujemy <code>type: ExternalName</code>.</p>
|
||||
|
@ -52,7 +52,7 @@ weight: 10
|
|||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>Serwis Kubernetes to warstwa abstrakcji, która definiuje logiczny zbiór Podów i umożliwia kierowanie ruchu przychodzącego do Podów, jego równoważenie oraz service discovery.</i></p>
|
||||
<p><i>Serwis Kubernetesa to warstwa abstrakcji, która definiuje logiczny zbiór Podów i umożliwia kierowanie ruchu przychodzącego do Podów, jego równoważenie oraz service discovery.</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -213,7 +213,7 @@ sudo mkdir -p $DOWNLOAD_DIR
|
|||
Instale o crictl (utilizado pelo kubeadm e pela Interface do Agente de execução do Kubelet (CRI))
|
||||
|
||||
```bash
|
||||
CRICTL_VERSION="v1.17.0"
|
||||
CRICTL_VERSION="v1.22.0"
|
||||
ARCH="amd64"
|
||||
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz
|
||||
```
|
||||
|
|
|
@ -461,7 +461,7 @@ source <(kubectl completion zsh)
|
|||
|
||||
```shell
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
После перезагрузки командной оболочки должны появляться дополнения ввода kubectl.
|
||||
|
|
|
@ -450,7 +450,7 @@ Nếu bạn có alias cho kubectl, bạn có thể mở rộng shell completion
|
|||
|
||||
```shell
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
Sau khi tải lại shell, kubectl autocompletion sẽ hoạt động.
|
||||
|
|
|
@ -107,7 +107,7 @@ Resources consumed by the command are counted against the Container.
|
|||
### Hook handler execution
|
||||
|
||||
When a Container lifecycle management hook is called,
|
||||
the Kubernetes management system execute the handler according to the hook action,
|
||||
the Kubernetes management system executes the handler according to the hook action,
|
||||
`httpGet` and `tcpSocket` are executed by the kubelet process, and `exec` is executed in the container.
|
||||
-->
|
||||
### 回调处理程序执行
|
||||
|
|
|
@ -68,7 +68,7 @@ There are additional rules about where you can place the separator
|
|||
characters (`_`, `-`, and `.`) inside an image tag.
|
||||
If you don't specify a tag, Kubernetes assumes you mean the tag `latest`.
|
||||
-->
|
||||
镜像标签可以包含小写字母、大写字符、数字、下划线(`_`)、句点(`.`)和连字符(`-`)。
|
||||
镜像标签可以包含小写字母、大写字母、数字、下划线(`_`)、句点(`.`)和连字符(`-`)。
|
||||
关于在镜像标签中何处可以使用分隔字符(`_`、`-` 和 `.`)还有一些额外的规则。
|
||||
如果你不指定标签,Kubernetes 认为你想使用标签 `latest`。
|
||||
|
||||
|
@ -517,6 +517,116 @@ registry keys are added to the `.docker/config.json`.
|
|||
|
||||
在 `.docker/config.json` 中配置了私有仓库密钥后,所有 Pod 都将能读取私有仓库中的镜像。
|
||||
|
||||
<!--
|
||||
### Interpretation of config.json {#config-json}
|
||||
-->
|
||||
### config.json 说明 {#config-json}
|
||||
|
||||
<!--
|
||||
The interpretation of `config.json` varies between the original Docker
|
||||
implementation and the Kubernetes interpretation. In Docker, the `auths` keys
|
||||
can only specify root URLs, whereas Kubernetes allows glob URLs as well as
|
||||
prefix-matched paths. This means that a `config.json` like this is valid:
|
||||
-->
|
||||
对于 `config.json` 的解释在原始 Docker 实现和 Kubernetes 的解释之间有所不同。
|
||||
在 Docker 中,`auths` 键只能指定根 URL ,而 Kubernetes 允许 glob URLs 以及
|
||||
前缀匹配的路径。这意味着,像这样的 `config.json` 是有效的:
|
||||
```json
|
||||
{
|
||||
"auths": {
|
||||
"*my-registry.io/images": {
|
||||
"auth": "…"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
The root URL (`*my-registry.io`) is matched by using the following syntax:
|
||||
|
||||
```
|
||||
pattern:
|
||||
{ term }
|
||||
|
||||
term:
|
||||
'*' matches any sequence of non-Separator characters
|
||||
'?' matches any single non-Separator character
|
||||
'[' [ '^' ] { character-range } ']'
|
||||
character class (must be non-empty)
|
||||
c matches character c (c != '*', '?', '\\', '[')
|
||||
'\\' c matches character c
|
||||
|
||||
character-range:
|
||||
c matches character c (c != '\\', '-', ']')
|
||||
'\\' c matches character c
|
||||
lo '-' hi matches character c for lo <= c <= hi
|
||||
```
|
||||
-->
|
||||
使用以下语法匹配根 URL (`*my-registry.io`):
|
||||
```
|
||||
pattern:
|
||||
{ term }
|
||||
|
||||
term:
|
||||
'*' 匹配任何无分隔符字符序列
|
||||
'?' 匹配任意单个非分隔符
|
||||
'[' [ '^' ] 字符范围
|
||||
字符集(必须非空)
|
||||
c 匹配字符 c (c 不为 '*','?','\\','[')
|
||||
'\\' c 匹配字符 c
|
||||
|
||||
字符范围:
|
||||
c 匹配字符 c (c 不为 '\\','?','-',']')
|
||||
'\\' c 匹配字符 c
|
||||
lo '-' hi 匹配字符范围在 lo 到 hi 之间字符
|
||||
```
|
||||
|
||||
<!--
|
||||
Image pull operations would now pass the credentials to the CRI container
|
||||
runtime for every valid pattern. For example the following container image names
|
||||
would match successfully:
|
||||
|
||||
- `my-registry.io/images`
|
||||
- `my-registry.io/images/my-image`
|
||||
- `my-registry.io/images/another-image`
|
||||
- `sub.my-registry.io/images/my-image`
|
||||
- `a.sub.my-registry.io/images/my-image`
|
||||
-->
|
||||
现在镜像拉取操作会将每种有效模式的凭据都传递给 CRI 容器运行时。例如下面的容器镜像名称会匹配成功:
|
||||
|
||||
- `my-registry.io/images`
|
||||
- `my-registry.io/images/my-image`
|
||||
- `my-registry.io/images/another-image`
|
||||
- `sub.my-registry.io/images/my-image`
|
||||
- `a.sub.my-registry.io/images/my-image`
|
||||
|
||||
<!--
|
||||
The kubelet performs image pulls sequentially for every found credential. This
|
||||
means, that multiple entries in `config.json` are possible, too:
|
||||
-->
|
||||
kubelet 为每个找到的凭证的镜像按顺序拉取。 这意味着在 `config.json` 中可能有多项:
|
||||
|
||||
```json
|
||||
{
|
||||
"auths": {
|
||||
"my-registry.io/images": {
|
||||
"auth": "…"
|
||||
},
|
||||
"my-registry.io/images/subpath": {
|
||||
"auth": "…"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
If now a container specifies an image `my-registry.io/images/subpath/my-image`
|
||||
to be pulled, then the kubelet will try to download them from both
|
||||
authentication sources if one of them fails.
|
||||
-->
|
||||
如果一个容器指定了要拉取的镜像 `my-registry.io/images/subpath/my-image`,
|
||||
并且其中一个失败,kubelet 将尝试从另一个身份验证源下载镜像。
|
||||
|
||||
<!--
|
||||
### Pre-pulled images
|
||||
-->
|
||||
|
|
|
@ -316,9 +316,10 @@ CRD 使得你不必编写自己的 API 服务器来处理定制资源,不过
|
|||
Usually, each resource in the Kubernetes API requires code that handles REST requests and manages persistent storage of objects. The main Kubernetes API server handles built-in resources like *pods* and *services*, and can also generically handle custom resources through [CRDs](#customresourcedefinitions).
|
||||
|
||||
The [aggregation layer](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) allows you to provide specialized
|
||||
implementations for your custom resources by writing and deploying your own standalone API server.
|
||||
The main API server delegates requests to you for the custom resources that you handle,
|
||||
implementations for your custom resources by writing and deploying your own API server.
|
||||
The main API server delegates requests to your API server for the custom resources that you handle,
|
||||
making them available to all of its clients.
|
||||
|
||||
-->
|
||||
## API 服务器聚合 {#api-server-aggregation}
|
||||
|
||||
|
@ -327,9 +328,9 @@ Kubernetes API 主服务器能够处理诸如 *pods* 和 *services* 这些内置
|
|||
按通用的方式通过 [CRD](#customresourcedefinitions) 来处理定制资源。
|
||||
|
||||
[聚合层(Aggregation Layer)](/zh/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
|
||||
使得你可以通过编写和部署你自己的独立的 API 服务器来为定制资源提供特殊的实现。
|
||||
主 API 服务器将针对你要处理的定制资源的请求全部委托给你来处理,同时将这些资源
|
||||
提供给其所有客户。
|
||||
使得你可以通过编写和部署你自己的 API 服务器来为定制资源提供特殊的实现。
|
||||
主 API 服务器将针对你要处理的定制资源的请求全部委托给你自己的 API 服务器来处理,同时将这些资源
|
||||
提供给其所有客户端。
|
||||
|
||||
<!--
|
||||
## Choosing a method for adding custom resources
|
||||
|
|
|
@ -755,14 +755,14 @@ OpenStack 的内部驱动已经被弃用。请使用
|
|||
<!--
|
||||
There are two types of provisioners for vSphere storage classes:
|
||||
|
||||
- [CSI provisioner](#csi-provisioner): `csi.vsphere.vmware.com`
|
||||
- [CSI provisioner](#vsphere-provisioner-csi): `csi.vsphere.vmware.com`
|
||||
- [vCP provisioner](#vcp-provisioner): `kubernetes.io/vsphere-volume`
|
||||
|
||||
In-tree provisioners are [deprecated](/blog/2019/12/09/kubernetes-1-17-feature-csi-migration-beta/#why-are-we-migrating-in-tree-plugins-to-csi). For more information on the CSI provisioner, see [Kubernetes vSphere CSI Driver](https://vsphere-csi-driver.sigs.k8s.io/) and [vSphereVolume CSI migration](/docs/concepts/storage/volumes/#csi-migration-5).
|
||||
-->
|
||||
vSphere 存储类有两种制备器
|
||||
|
||||
- [CSI 制备器](#csi-provisioner): `csi.vsphere.vmware.com`
|
||||
- [CSI 制备器](#vsphere-provisioner-csi): `csi.vsphere.vmware.com`
|
||||
- [vCP 制备器](#vcp-provisioner): `kubernetes.io/vsphere-volume`
|
||||
|
||||
树内制备器已经被
|
||||
|
@ -774,19 +774,19 @@ vSphere 存储类有两种制备器
|
|||
<!--
|
||||
#### CSI Provisioner {#vsphere-provisioner-csi}
|
||||
|
||||
The vSphere CSI StorageClass provisioner works with Tanzu Kubernetes clusters. For an example, refer to the [vSphere CSI repository](https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/master/example/vanilla-k8s-file-driver/example-sc.yaml).
|
||||
The vSphere CSI StorageClass provisioner works with Tanzu Kubernetes clusters. For an example, refer to the [vSphere CSI repository](https://github.com/kubernetes-sigs/vsphere-csi-driver/blob/master/example/vanilla-k8s-RWM-filesystem-volumes/example-sc.yaml).
|
||||
-->
|
||||
#### CSI 制备器 {#vsphere-provisioner-csi}
|
||||
|
||||
vSphere CSI StorageClass 制备器在 Tanzu Kubernetes 集群下运行。示例请参
|
||||
[vSphere CSI 仓库](https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/master/example/vanilla-k8s-file-driver/example-sc.yaml)。
|
||||
[vSphere CSI 仓库](https://github.com/kubernetes-sigs/vsphere-csi-driver/blob/master/example/vanilla-k8s-RWM-filesystem-volumes/example-sc.yaml)。
|
||||
|
||||
<!--
|
||||
#### vCP Provisioner
|
||||
|
||||
The following examples use the VMware Cloud Provider (vCP) StorageClass provisioner.
|
||||
-->
|
||||
#### vCP 制备器
|
||||
#### vCP 制备器 {#vcp-provisioner}
|
||||
|
||||
以下示例使用 VMware Cloud Provider (vCP) StorageClass 调度器
|
||||
|
||||
|
|
|
@ -19,8 +19,6 @@ A _CronJob_ creates {{< glossary_tooltip term_id="job" text="Jobs" >}} on a repe
|
|||
|
||||
One CronJob object is like one line of a _crontab_ (cron table) file. It runs a job periodically
|
||||
on a given schedule, written in [Cron](https://en.wikipedia.org/wiki/Cron) format.
|
||||
|
||||
In addition, the CronJob schedule supports timezone handling, you can specify the timezone by adding "CRON_TZ=<time zone>" at the beginning of the CronJob schedule, and it is recommended to always set `CRON_TZ`.
|
||||
-->
|
||||
_CronJob_ 创建基于时隔重复调度的 {{< glossary_tooltip term_id="job" text="Jobs" >}}。
|
||||
|
||||
|
@ -28,8 +26,6 @@ _CronJob_ 创建基于时隔重复调度的 {{< glossary_tooltip term_id="job" t
|
|||
它用 [Cron](https://en.wikipedia.org/wiki/Cron) 格式进行编写,
|
||||
并周期性地在给定的调度时间执行 Job。
|
||||
|
||||
另外,CronJob 调度支持时区处理,你可以通过在 CronJob schedule 字段的开头添加 "CRON_TZ=<time zone>" 指定时区,且建议始终设置 `CRON_TZ`。
|
||||
|
||||
<!--
|
||||
All **CronJob** `schedule:` times are based on the timezone of the
|
||||
|
||||
|
@ -47,6 +43,24 @@ that the cron job controller uses.
|
|||
那么为该容器所设置的时区将会决定 Cron Job 的控制器所使用的时区。
|
||||
{{< /caution >}}
|
||||
|
||||
<!--
|
||||
The [v1 CronJob API](/docs/reference/kubernetes-api/workload-resources/cron-job-v1/)
|
||||
does not officially support setting timezone as explained above.
|
||||
|
||||
Setting variables such as `CRON_TZ` or `TZ` is not officially supported by the Kubernetes project.
|
||||
`CRON_TZ` or `TZ` is an implementation detail of the internal library being used
|
||||
for parsing and calculating the next Job creation time. Any usage of it is not
|
||||
recommended in a production cluster.
|
||||
-->
|
||||
|
||||
{{< caution >}}
|
||||
如 [v1 CronJob API](/zh/docs/reference/kubernetes-api/workload-resources/cron-job-v1/) 所述,官方并不支持设置时区。
|
||||
|
||||
Kubernetes 项目官方并不支持设置如 `CRON_TZ` 或者 `TZ` 等变量。
|
||||
`CRON_TZ` 或者 `TZ` 是用于解析和计算下一个 Job 创建时间所使用的内部库中一个实现细节。
|
||||
不建议在生产集群中使用它。
|
||||
{{< /caution>}}
|
||||
|
||||
<!--
|
||||
When creating the manifest for a CronJob resource, make sure the name you provide
|
||||
is a valid [DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names).
|
||||
|
@ -96,16 +110,15 @@ This example CronJob manifest prints the current time and a hello message every
|
|||
### Cron 时间表语法
|
||||
|
||||
```
|
||||
# ┌────────────────── 时区 (可选)
|
||||
# | ┌───────────── 分钟 (0 - 59)
|
||||
# | │ ┌───────────── 小时 (0 - 23)
|
||||
# | │ │ ┌───────────── 月的某天 (1 - 31)
|
||||
# | │ │ │ ┌───────────── month (1 - 12)
|
||||
# | │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周一;在某些系统上,7 也是星期日)
|
||||
# | │ │ │ │ │
|
||||
# | │ │ │ │ │
|
||||
# | │ │ │ │ │
|
||||
# CRON_TZ=UTC * * * * *
|
||||
# ┌───────────── 分钟 (0 - 59)
|
||||
# │ ┌───────────── 小时 (0 - 23)
|
||||
# │ │ ┌───────────── 月的某天 (1 - 31)
|
||||
# │ │ │ ┌───────────── 月份 (1 - 12)
|
||||
# │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周一;在某些系统上,7 也是星期日)
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
# * * * * *
|
||||
```
|
||||
|
||||
```
|
||||
|
@ -114,7 +127,7 @@ This example CronJob manifest prints the current time and a hello message every
|
|||
# │ │ ┌───────────── 月的某天 (1 - 31)
|
||||
# │ │ │ ┌───────────── 月份 (1 - 12)
|
||||
# │ │ │ │ ┌───────────── 周的某天 (0 - 6) (周日到周一;在某些系统上,7 也是星期日)
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
# * * * * *
|
||||
|
@ -138,11 +151,11 @@ This example CronJob manifest prints the current time and a hello message every
|
|||
| @hourly | 每小时的开始一次 | 0 * * * * |
|
||||
|
||||
<!--
|
||||
For example, the line below states that the task must be started every Friday at midnight, as well as on the 13th of each month at midnight(in UTC):
|
||||
For example, the line below states that the task must be started every Friday at midnight, as well as on the 13th of each month at midnight:
|
||||
-->
|
||||
例如,下面这行指出必须在每个星期五的午夜以及每个月 13 号的午夜开始任务(UTC 时间):
|
||||
例如,下面这行指出必须在每个星期五的午夜以及每个月 13 号的午夜开始任务:
|
||||
|
||||
`CRON_TZ=UTC 0 0 13 * 5`
|
||||
`0 0 13 * 5`
|
||||
|
||||
<!--
|
||||
To generate CronJob schedule expressions, you can also use web tools like [crontab.guru](https://crontab.guru/).
|
||||
|
|
|
@ -441,13 +441,13 @@ other Pods for the Job failing around that time.
|
|||
当 Job 的 Pod 被删除时,或者 Pod 成功时没有其它 Pod 处于失败状态,失效回退的次数也会被重置(为 0)。
|
||||
|
||||
<!--
|
||||
If your job has `restartPolicy = "OnFailure"`, keep in mind that your container running the Job
|
||||
If your job has `restartPolicy = "OnFailure"`, keep in mind that your Pod running the Job
|
||||
will be terminated once the job backoff limit has been reached. This can make debugging the Job's executable more difficult. We suggest setting
|
||||
`restartPolicy = "Never"` when debugging the Job or using a logging system to ensure output
|
||||
from failed Jobs is not lost inadvertently.
|
||||
-->
|
||||
{{< note >}}
|
||||
如果你的 Job 的 `restartPolicy` 被设置为 "OnFailure",就要注意运行该 Job 的容器
|
||||
如果你的 Job 的 `restartPolicy` 被设置为 "OnFailure",就要注意运行该 Job 的 Pod
|
||||
会在 Job 到达失效回退次数上限时自动被终止。
|
||||
这会使得调试 Job 中可执行文件的工作变得非常棘手。
|
||||
我们建议在调试 Job 时将 `restartPolicy` 设置为 "Never",
|
||||
|
|
|
@ -890,10 +890,10 @@ Number of workers spawned for DeleteCollection call. These are used to speed up
|
|||
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
admission plugins that should be disabled although they are in the default enabled plugins list (NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, MutatingAdmissionWebhook, ValidatingAdmissionWebhook, ResourceQuota). Comma-delimited list of admission plugins: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook. The order of plugins in this flag does not matter.
|
||||
admission plugins that should be disabled although they are in the default enabled plugins list (NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, MutatingAdmissionWebhook, ValidatingAdmissionWebhook, ResourceQuota). Comma-delimited list of admission plugins: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodSecurity, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook. The order of plugins in this flag does not matter.
|
||||
-->
|
||||
尽管位于默认启用的插件列表中(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)仍须被禁用的插件。
|
||||
<br/>取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurityPolicy、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionWebhook。
|
||||
尽管位于默认启用的插件列表中(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)仍须被禁用的插件。
|
||||
<br/>取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodSecurityPolicy、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionWebhook。
|
||||
<br/>该标志中插件的顺序无关紧要。
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -932,13 +932,13 @@ File with apiserver egress selector configuration.
|
|||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
admission plugins that should be enabled in addition to default enabled ones (
|
||||
NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, MutatingAdmissionWebhook, ValidatingAdmissionWebhook, ResourceQuota).
|
||||
NamespaceLifecycle, LimitRanger, ServiceAccount, TaintNodesByCondition, PodSecurity, Priority, DefaultTolerationSeconds, DefaultStorageClass, StorageObjectInUseProtection, PersistentVolumeClaimResize, RuntimeClass, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, MutatingAdmissionWebhook, ValidatingAdmissionWebhook, ResourceQuota).
|
||||
Comma-delimited list of admission plugins:
|
||||
AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook.
|
||||
AlwaysAdmit, AlwaysDeny, AlwaysPullImages, CertificateApproval, CertificateSigning, CertificateSubjectRestriction, DefaultIngressClass, DefaultStorageClass, DefaultTolerationSeconds, DenyServiceExternalIPs, EventRateLimit, ExtendedResourceToleration, ImagePolicyWebhook, LimitPodHardAntiAffinityTopology, LimitRanger, MutatingAdmissionWebhook, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, NodeRestriction, OwnerReferencesPermissionEnforcement, PersistentVolumeClaimResize, PersistentVolumeLabel, PodNodeSelector, PodSecurity, PodSecurityPolicy, PodTolerationRestriction, Priority, ResourceQuota, RuntimeClass, SecurityContextDeny, ServiceAccount, StorageObjectInUseProtection, TaintNodesByCondition, ValidatingAdmissionWebhook.
|
||||
The order of plugins in this flag does not matter.
|
||||
-->
|
||||
除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的插件
|
||||
</br>取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurityPolicy、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionWebhook
|
||||
除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的插件
|
||||
</br>取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodSecurityPolicy、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionWebhook
|
||||
<br/>该标志中插件的顺序无关紧要。
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1195,13 +1195,13 @@ APIListChunking=true|false (BETA - default=true)<br/>
|
|||
APIPriorityAndFairness=true|false (BETA - default=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - default=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - default=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - default=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - default=false)<br/>
|
||||
AllBeta=true|false (BETA - default=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - default=false)<br/>
|
||||
AppArmor=true|false (BETA - default=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - default=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - default=true)<br/>
|
||||
CPUManager=true|false (BETA - default=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - default=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - default=true)<br/>
|
||||
CSIMigration=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - default=false)<br/>
|
||||
|
@ -1210,34 +1210,32 @@ CSIMigrationAzureFile=true|false (BETA - default=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - default=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - default=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - default=false)<br/>
|
||||
CSRDuration=true|false (BETA - default=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - default=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - default=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - default=true)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - default=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - default=false)<br/>
|
||||
DevicePlugins=true|false (BETA - default=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - default=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - default=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - default=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - default=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - default=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - default=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - default=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - default=false)<br/>
|
||||
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - default=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - default=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - default=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - default=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - default=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - default=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - default=false)<br/>
|
||||
|
@ -1245,61 +1243,64 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - default=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - default=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (BETA - default=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - default=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - default=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - default=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - default=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - default=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - default=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - default=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - default=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - default=true)<br/>
|
||||
MemoryManager=true|false (BETA - default=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - default=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - default=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - default=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - default=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - default=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - default=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - default=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - default=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - default=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - default=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - default=true)<br/>
|
||||
PodOverhead=true|false (BETA - default=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - default=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - default=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - default=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - default=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - default=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - default=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - default=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - default=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - default=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - default=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - default=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - default=true)<br/>
|
||||
ServerSideApply=true|false (BETA - default=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - default=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - default=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - default=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - default=false)<br/>
|
||||
SeccompDefault=true|false (ALPHA - default=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - default=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - default=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - default=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (BETA - default=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - default=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - default=false)<br/>
|
||||
SuspendJob=true|false (BETA - default=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - default=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - default=false)<br/>
|
||||
TopologyManager=true|false (BETA - default=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - default=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - default=false)<br/>
|
||||
WarningHeaders=true|false (BETA - default=true)<br/>
|
||||
WinDSR=true|false (ALPHA - default=false)<br/>
|
||||
WinOverlay=true|false (BETA - default=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - default=true)
|
||||
WindowsHostProcessContainers=true|false (ALPHA - default=false)
|
||||
-->
|
||||
<p>一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
|
||||
APIListChunking=true|false (BETA - 默认值=true)<br/>
|
||||
APIPriorityAndFairness=true|false (BETA - 默认值=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - 默认值=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - 默认值=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllBeta=true|false (BETA - 默认值=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - 默认值=false)<br/>
|
||||
AppArmor=true|false (BETA - 默认值=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManager=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - 默认值=false)<br/>
|
||||
|
@ -1308,34 +1309,32 @@ CSIMigrationAzureFile=true|false (BETA - 默认值=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - 默认值=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSRDuration=true|false (BETA - 默认值=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - 默认值=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - 默认值=false)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - 默认值=true)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - 默认值=true)<br/>
|
||||
默认值PodTopologySpread=true|false (BETA - 默认值=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - 默认值=false)<br/>
|
||||
DevicePlugins=true|false (BETA - 默认值=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - 默认值=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - 默认值=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - 默认值=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - 默认值=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - 默认值=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExperimentalHostUserNamespace默认值ing=true|false (BETA - 默认值=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - 默认值=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - 默认值=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - 默认值=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - 默认值=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - 默认值=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - 默认值=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
|
@ -1343,48 +1342,51 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (BETA - 默认值=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - 默认值=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - 默认值=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - 默认值=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - 默认值=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryManager=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - 默认值=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - 默认值=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - 默认值=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - 默认值=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - 默认值=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - 默认值=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - 默认值=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - 默认值=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - 默认值=true)<br/>
|
||||
PodOverhead=true|false (BETA - 默认值=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - 默认值=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - 默认值=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - 默认值=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - 默认值=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - 默认值=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - 默认值=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - 默认值=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - 默认值=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)<br/>
|
||||
ServerSideApply=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - 默认值=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
Seccomp默认值=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - 默认值=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
SuspendJob=true|false (BETA - 默认值=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - 默认值=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - 默认值=false)<br/>
|
||||
TopologyManager=true|false (BETA - 默认值=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - 默认值=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)<br/>
|
||||
WarningHeaders=true|false (BETA - 默认值=true)<br/>
|
||||
WinDSR=true|false (ALPHA - 默认值=false)<br/>
|
||||
WinOverlay=true|false (BETA - 默认值=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - 默认值=true)</p>
|
||||
WindowsHostProcessContainers=true|false (ALPHA - 默认值=false)</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -1639,9 +1641,9 @@ Maximum number of seconds between log flushes
|
|||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
Sets the log format. Permitted formats: "json", "text".<br/>Non-default formats don't honor these flags: --add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir, --log_file, --log_file_max_size, --logtostderr, --one_output, --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule, --log-flush-frequency.<br/>Non-default choices are currently alpha and subject to change without warning.
|
||||
Sets the log format. Permitted formats: "text".<br/>Non-default formats don't honor these flags: --add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir, --log_file, --log_file_max_size, --logtostderr, --one_output, --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule, --log-flush-frequency.<br/>Non-default choices are currently alpha and subject to change without warning.
|
||||
-->
|
||||
设置日志格式。允许的格式:"json","json"。<br/>
|
||||
设置日志格式。允许的格式:"text"。<br/>
|
||||
非默认格式不支持以下标志:<code>--add-dir-header</code>、<code>--alsologtostderr</code>、<code>--log-backtrace-at</code>、<code>--log-dir</code>、<code>--log-file</code>、<code>--log-file-max-size</code>、<code>--logtostderr</code>、<code>--one-output</code>、<code>-skip-headers</code>、<code>-skip-log-headers</code>、<code>--stderrthreshold</code>、<code>-vmodule</code> 和 <code>--log-flush-frequency</code>。<br/>
|
||||
当前非默认选择为 alpha,会随时更改而不会发出警告。
|
||||
</td>
|
||||
|
@ -1690,12 +1692,11 @@ If non-zero, throttle each user connection to this number of bytes/sec. Currentl
|
|||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
The maximum number of mutating requests in flight at a given time.
|
||||
When the server exceeds this, it rejects requests. Zero for no limit.
|
||||
This and --max-requests-inflight are summed to determine the server's total concurrency limit (which must be positive) if --enable-priority-and-fairness is true.
|
||||
Otherwise, this flag limits the maximum number of mutating requests in flight, or a zero value disables the limit completely.
|
||||
-->
|
||||
在给定时间内进行中变更类型请求的最大个数。
|
||||
当超过该值时,服务将拒绝所有请求。
|
||||
零表示无限制。
|
||||
如果 --enable-priority-and-fairness 为 true,那么此值和 --max-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。
|
||||
否则,该值限制进行中变更类型请求的最大个数,零表示无限制。
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -1705,12 +1706,11 @@ When the server exceeds this, it rejects requests. Zero for no limit.
|
|||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
The maximum number of non-mutating requests in flight at a given time.
|
||||
When the server exceeds this, it rejects requests. Zero for no limit.
|
||||
This and --max-mutating-requests-inflight are summed to determine the server's total concurrency limit (which must be positive) if --enable-priority-and-fairness is true.
|
||||
Otherwise, this flag limits the maximum number of non-mutating requests in flight, or a zero value disables the limit completely.
|
||||
-->
|
||||
在给定时间内进行中非变更类型请求的最大数量。
|
||||
当超过该值时,服务将拒绝所有请求。
|
||||
零表示无限制。
|
||||
如果 --enable-priority-and-fairness 为 true,那么此值和 --max-mutating-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。
|
||||
否则,该值限制进行中非变更类型请求的最大个数,零表示无限制。
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -2102,7 +2102,7 @@ If this flag is enabled, admission injected tokens would be extended up to
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--service-account-issuer string</td>
|
||||
<td colspan="2">--service-account-issuer strings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
|
@ -2116,6 +2116,8 @@ comply with the OpenID spec: https://openid.net/specs/openid-connect-discovery-1
|
|||
In practice, this means that service-account-issuer must be an https URL.
|
||||
It is also highly recommended that this URL be capable of serving OpenID
|
||||
discovery documents at {service-account-issuer}/.well-known/openid-configuration.
|
||||
When this flag is specified multiple times, the first is used to generate tokens
|
||||
and all are used to determine which issuers are accepted.
|
||||
-->
|
||||
服务帐号令牌颁发者的标识符。
|
||||
颁发者将在已办法令牌的 "iss" 声明中检查此标识符。
|
||||
|
@ -2126,6 +2128,7 @@ ServiceAccountIssuerDiscovery 功能也将保持禁用状态。
|
|||
实践中,这意味着 service-account-issuer 取值必须是 HTTPS URL。
|
||||
还强烈建议此 URL 能够在 {service-account-issuer}/.well-known/openid-configuration
|
||||
处提供 OpenID 发现文档。
|
||||
当此值被多次指定时,第一次的值用于生成令牌,所有的值用于确定接受哪些发行人。
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -2454,6 +2457,18 @@ If set, the file that will be used to secure the secure port of the API server v
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">--tracing-config-file string</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
File with apiserver tracing configuration.
|
||||
-->
|
||||
包含 API 服务器跟踪配置的文件。
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">-v, --v int</td>
|
||||
</tr>
|
||||
|
|
|
@ -352,9 +352,10 @@ Filename containing a PEM-encoded X509 CA certificate used to issue cluster-scop
|
|||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
The length of duration signed certificates will be given.
|
||||
The max length of duration signed certificates will be given.
|
||||
Individual CSRs may request shorter certs by setting spec.expirationSeconds.
|
||||
-->
|
||||
所签名证书的有效期限。
|
||||
所签名证书的有效期限。每个 CSR 可以通过设置 spec.expirationSeconds 来请求更短的证书。
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -860,13 +861,13 @@ APIListChunking=true|false (BETA - default=true)<br/>
|
|||
APIPriorityAndFairness=true|false (BETA - default=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - default=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - default=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - default=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - default=false)<br/>
|
||||
AllBeta=true|false (BETA - default=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - default=false)<br/>
|
||||
AppArmor=true|false (BETA - default=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - default=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - default=true)<br/>
|
||||
CPUManager=true|false (BETA - default=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - default=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - default=true)<br/>
|
||||
CSIMigration=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - default=false)<br/>
|
||||
|
@ -875,34 +876,32 @@ CSIMigrationAzureFile=true|false (BETA - default=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - default=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - default=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - default=false)<br/>
|
||||
CSRDuration=true|false (BETA - default=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - default=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - default=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - default=true)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - default=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - default=false)<br/>
|
||||
DevicePlugins=true|false (BETA - default=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - default=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - default=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - default=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - default=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - default=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - default=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - default=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - default=false)<br/>
|
||||
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - default=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - default=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - default=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - default=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - default=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - default=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - default=false)<br/>
|
||||
|
@ -910,61 +909,64 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - default=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - default=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (BETA - default=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - default=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - default=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - default=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - default=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - default=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - default=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - default=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - default=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - default=true)<br/>
|
||||
MemoryManager=true|false (BETA - default=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - default=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - default=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - default=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - default=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - default=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - default=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - default=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - default=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - default=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - default=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - default=true)<br/>
|
||||
PodOverhead=true|false (BETA - default=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - default=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - default=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - default=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - default=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - default=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - default=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - default=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - default=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - default=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - default=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - default=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - default=true)<br/>
|
||||
ServerSideApply=true|false (BETA - default=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - default=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - default=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - default=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - default=false)<br/>
|
||||
SeccompDefault=true|false (ALPHA - default=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - default=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - default=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - default=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (BETA - default=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - default=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - default=false)<br/>
|
||||
SuspendJob=true|false (BETA - default=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - default=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - default=false)<br/>
|
||||
TopologyManager=true|false (BETA - default=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - default=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - default=false)<br/>
|
||||
WarningHeaders=true|false (BETA - default=true)<br/>
|
||||
WinDSR=true|false (ALPHA - default=false)<br/>
|
||||
WinOverlay=true|false (BETA - default=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - default=true)
|
||||
WindowsHostProcessContainers=true|false (ALPHA - default=false)
|
||||
-->
|
||||
一组 key=value 对,用来描述测试性/试验性功能的特性门控(Feature Gate)。可选项有:
|
||||
APIListChunking=true|false (BETA - 默认值=true)<br/>
|
||||
APIPriorityAndFairness=true|false (BETA - 默认值=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - 默认值=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - 默认值=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllBeta=true|false (BETA - 默认值=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - 默认值=false)<br/>
|
||||
AppArmor=true|false (BETA - 默认值=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManager=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - 默认值=false)<br/>
|
||||
|
@ -973,34 +975,32 @@ CSIMigrationAzureFile=true|false (BETA - 默认值=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - 默认值=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSRDuration=true|false (BETA - 默认值=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - 默认值=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - 默认值=false)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - 默认值=true)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - 默认值=true)<br/>
|
||||
默认值PodTopologySpread=true|false (BETA - 默认值=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - 默认值=false)<br/>
|
||||
DevicePlugins=true|false (BETA - 默认值=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - 默认值=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - 默认值=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - 默认值=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - 默认值=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - 默认值=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExperimentalHostUserNamespace默认值ing=true|false (BETA - 默认值=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - 默认值=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - 默认值=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - 默认值=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - 默认值=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - 默认值=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - 默认值=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
|
@ -1008,48 +1008,51 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (BETA - 默认值=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - 默认值=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - 默认值=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - 默认值=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - 默认值=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryManager=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - 默认值=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - 默认值=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - 默认值=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - 默认值=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - 默认值=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - 默认值=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - 默认值=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - 默认值=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - 默认值=true)<br/>
|
||||
PodOverhead=true|false (BETA - 默认值=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - 默认值=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - 默认值=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - 默认值=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - 默认值=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - 默认值=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - 默认值=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - 默认值=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - 默认值=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)<br/>
|
||||
ServerSideApply=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - 默认值=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
Seccomp默认值=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - 默认值=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
SuspendJob=true|false (BETA - 默认值=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - 默认值=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - 默认值=false)<br/>
|
||||
TopologyManager=true|false (BETA - 默认值=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - 默认值=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)<br/>
|
||||
WarningHeaders=true|false (BETA - 默认值=true)<br/>
|
||||
WinDSR=true|false (ALPHA - 默认值=false)<br/>
|
||||
WinOverlay=true|false (BETA - 默认值=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - 默认值=true)
|
||||
WindowsHostProcessContainers=true|false (ALPHA - 默认值=false)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1391,9 +1394,9 @@ Maximum number of seconds between log flushes
|
|||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
Sets the log format. Permitted formats: "json", "text".<br/>Non-default formats don't honor these flags: --add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir, --log_file, --log_file_max_size, --logtostderr, --one_output, --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule, --log-flush-frequency.<br/>Non-default choices are currently alpha and subject to change without warning.
|
||||
Sets the log format. Permitted formats: "text".<br/>Non-default formats don't honor these flags: --add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir, --log_file, --log_file_max_size, --logtostderr, --one_output, --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule, --log-flush-frequency.<br/>Non-default choices are currently alpha and subject to change without warning.
|
||||
-->
|
||||
设置日志格式。允许的格式:"text","json"。
|
||||
设置日志格式。允许的格式:"text"。
|
||||
<br/>非默认格式不支持以下标志:<code>--add-dir-header</code>、
|
||||
<code>--alsologtostderr</code>》、<code>--log-backtrace-at</code>、
|
||||
<code>--log-dir</code>、<code>--log-file</code>、<code>--log-file-max-size</code>、
|
||||
|
|
|
@ -261,13 +261,13 @@ APIListChunking=true|false (BETA - default=true)<br/>
|
|||
APIPriorityAndFairness=true|false (BETA - default=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - default=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - default=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - default=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - default=false)<br/>
|
||||
AllBeta=true|false (BETA - default=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - default=false)<br/>
|
||||
AppArmor=true|false (BETA - default=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - default=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - default=true)<br/>
|
||||
CPUManager=true|false (BETA - default=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - default=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - default=true)<br/>
|
||||
CSIMigration=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - default=false)<br/>
|
||||
|
@ -276,34 +276,32 @@ CSIMigrationAzureFile=true|false (BETA - default=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - default=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - default=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - default=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - default=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - default=false)<br/>
|
||||
CSRDuration=true|false (BETA - default=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - default=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - default=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - default=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - default=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - default=true)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - default=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - default=false)<br/>
|
||||
DevicePlugins=true|false (BETA - default=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - default=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - default=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - default=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - default=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - default=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - default=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - default=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - default=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - default=true)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - default=false)<br/>
|
||||
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - default=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - default=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - default=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - default=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - default=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - default=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - default=false)<br/>
|
||||
|
@ -311,61 +309,64 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - default=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - default=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - default=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - default=false)<br/>
|
||||
IndexedJob=true|false (BETA - default=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - default=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - default=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - default=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - default=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - default=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - default=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - default=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - default=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - default=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - default=true)<br/>
|
||||
MemoryManager=true|false (BETA - default=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - default=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - default=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - default=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - default=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - default=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - default=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - default=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - default=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - default=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - default=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - default=true)<br/>
|
||||
PodOverhead=true|false (BETA - default=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - default=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - default=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - default=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - default=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - default=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - default=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - default=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - default=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - default=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - default=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - default=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - default=true)<br/>
|
||||
ServerSideApply=true|false (BETA - default=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - default=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - default=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - default=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - default=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - default=false)<br/>
|
||||
SeccompDefault=true|false (ALPHA - default=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - default=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - default=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - default=true)<br/>1
|
||||
SizeMemoryBackedVolumes=true|false (BETA - default=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - default=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - default=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - default=false)<br/>
|
||||
SuspendJob=true|false (BETA - default=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - default=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - default=false)<br/>
|
||||
TopologyManager=true|false (BETA - default=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - default=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - default=false)<br/>
|
||||
WarningHeaders=true|false (BETA - default=true)<br/>
|
||||
WinDSR=true|false (ALPHA - default=false)<br/>
|
||||
WinOverlay=true|false (BETA - default=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - default=true)
|
||||
WindowsHostProcessContainers=true|false (ALPHA - default=false)
|
||||
-->
|
||||
一组键=值(key=value)对,描述了 alpha/experimental 的特征。可选项有:
|
||||
APIListChunking=true|false (BETA - 默认值=true)<br/>
|
||||
APIPriorityAndFairness=true|false (BETA - 默认值=true)<br/>
|
||||
APIResponseCompression=true|false (BETA - 默认值=true)<br/>
|
||||
APIServerIdentity=true|false (ALPHA - 默认值=false)<br/>
|
||||
APIServerTracing=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllAlpha=true|false (ALPHA - 默认值=false)<br/>
|
||||
AllBeta=true|false (BETA - 默认值=false)<br/>
|
||||
AnyVolumeDataSource=true|false (ALPHA - 默认值=false)<br/>
|
||||
AppArmor=true|false (BETA - 默认值=true)<br/>
|
||||
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
BoundServiceAccountTokenVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManager=true|false (BETA - 默认值=true)<br/>
|
||||
CPUManagerPolicyOptions=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSIInlineVolume=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationAWS=true|false (BETA - 默认值=false)<br/>
|
||||
|
@ -374,34 +375,32 @@ CSIMigrationAzureFile=true|false (BETA - 默认值=false)<br/>
|
|||
CSIMigrationGCE=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationOpenStack=true|false (BETA - 默认值=true)<br/>
|
||||
CSIMigrationvSphere=true|false (BETA - 默认值=false)<br/>
|
||||
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false)<br/>
|
||||
CSIServiceAccountToken=true|false (BETA - 默认值=true)<br/>
|
||||
CSIStorageCapacity=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
CSIVolumeHealth=true|false (ALPHA - 默认值=false)<br/>
|
||||
CSRDuration=true|false (BETA - 默认值=true)<br/>
|
||||
ConfigurableFSGroupPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (ALPHA - 默认值=false)<br/>
|
||||
CronJobControllerV2=true|false (BETA - 默认值=true)<br/>
|
||||
ControllerManagerLeaderMigration=true|false (BETA - 默认值=true)<br/>
|
||||
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (ALPHA - 默认值=false)<br/>
|
||||
DaemonSetUpdateSurge=true|false (BETA - 默认值=true)<br/>
|
||||
DefaultPodTopologySpread=true|false (BETA - 默认值=true)<br/>
|
||||
DelegateFSGroupToCSIDriver=true|false (ALPHA - 默认值=false)<br/>
|
||||
DevicePlugins=true|false (BETA - 默认值=true)<br/>
|
||||
DisableAcceleratorUsageMetrics=true|false (BETA - 默认值=true)<br/>
|
||||
DisableCloudProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
DownwardAPIHugePages=true|false (BETA - 默认值=false)<br/>
|
||||
DynamicKubeletConfig=true|false (BETA - 默认值=true)<br/>
|
||||
EfficientWatchResumption=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceProxying=true|false (BETA - 默认值=true)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (ALPHA - 默认值=false)<br/>
|
||||
EndpointSliceTerminatingCondition=true|false (BETA - 默认值=true)<br/>
|
||||
EphemeralContainers=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExpandCSIVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandPersistentVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
ExpandedDNSConfig=true|false (ALPHA - 默认值=false)<br/>
|
||||
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)<br/>
|
||||
GenericEphemeralVolume=true|false (BETA - 默认值=true)<br/>
|
||||
GracefulNodeShutdown=true|false (BETA - 默认值=true)<br/>
|
||||
HPAContainerMetrics=true|false (ALPHA - 默认值=false)<br/>
|
||||
HPAScaleToZero=true|false (ALPHA - 默认值=false)<br/>
|
||||
HugePageStorageMediumSize=true|false (BETA - 默认值=true)<br/>
|
||||
IPv6DualStack=true|false (BETA - 默认值=true)<br/>
|
||||
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
|
@ -409,48 +408,51 @@ InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)<br/>
|
|||
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
IngressClassNamespacedParams=true|false (ALPHA - 默认值=false)<br/>
|
||||
IndexedJob=true|false (BETA - 默认值=true)<br/>
|
||||
IngressClassNamespacedParams=true|false (BETA - 默认值=true)<br/>
|
||||
JobTrackingWithFinalizers=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletCredentialProviders=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)<br/>
|
||||
KubeletPodResources=true|false (BETA - 默认值=true)<br/>
|
||||
KubeletPodResourcesGetAllocatable=true|false (ALPHA - 默认值=false)<br/>
|
||||
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)<br/>
|
||||
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (ALPHA - 默认值=false)<br/>
|
||||
MemoryManager=true|false (ALPHA - 默认值=false)<br/>
|
||||
LogarithmicScaleDown=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryManager=true|false (BETA - 默认值=true)<br/>
|
||||
MemoryQoS=true|false (ALPHA - 默认值=false)<br/>
|
||||
MixedProtocolLBService=true|false (ALPHA - 默认值=false)<br/>
|
||||
NamespaceDefaultLabelName=true|false (BETA - 默认值=true)<br/>
|
||||
NetworkPolicyEndPort=true|false (ALPHA - 默认值=false)<br/>
|
||||
NetworkPolicyEndPort=true|false (BETA - 默认值=true)<br/>
|
||||
NodeSwap=true|false (ALPHA - 默认值=false)<br/>
|
||||
NonPreemptingPriority=true|false (BETA - 默认值=true)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodDeletionCost=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodAffinityNamespaceSelector=true|false (BETA - 默认值=true)<br/>
|
||||
PodDeletionCost=true|false (BETA - 默认值=true)<br/>
|
||||
PodOverhead=true|false (BETA - 默认值=true)<br/>
|
||||
PreferNominatedNode=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (ALPHA - 默认值=false)<br/>
|
||||
PodSecurity=true|false (ALPHA - 默认值=false)<br/>
|
||||
PreferNominatedNode=true|false (BETA - 默认值=true)<br/>
|
||||
ProbeTerminationGracePeriod=true|false (BETA - 默认值=false)<br/>
|
||||
ProcMountType=true|false (ALPHA - 默认值=false)<br/>
|
||||
ProxyTerminatingEndpoints=true|false (ALPHA - 默认值=false)<br/>
|
||||
QOSReserved=true|false (ALPHA - 默认值=false)<br/>
|
||||
ReadWriteOncePod=true|false (ALPHA - 默认值=false)<br/>
|
||||
RemainingItemCount=true|false (BETA - 默认值=true)<br/>
|
||||
RemoveSelfLink=true|false (BETA - 默认值=true)<br/>
|
||||
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)<br/>
|
||||
ServerSideApply=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLBNodePortControl=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceLoadBalancerClass=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceTopology=true|false (ALPHA - 默认值=false)<br/>
|
||||
SetHostnameAsFQDN=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (ALPHA - 默认值=false)<br/>
|
||||
SeccompDefault=true|false (ALPHA - 默认值=false)<br/>
|
||||
ServiceInternalTrafficPolicy=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLBNodePortControl=true|false (BETA - 默认值=true)<br/>
|
||||
ServiceLoadBalancerClass=true|false (BETA - 默认值=true)<br/>
|
||||
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)<br/>
|
||||
StatefulSetMinReadySeconds=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionAPI=true|false (ALPHA - 默认值=false)<br/>
|
||||
StorageVersionHash=true|false (BETA - 默认值=true)<br/>
|
||||
SuspendJob=true|false (ALPHA - 默认值=false)<br/>
|
||||
SuspendJob=true|false (BETA - 默认值=true)<br/>
|
||||
TTLAfterFinished=true|false (BETA - 默认值=true)<br/>
|
||||
TopologyAwareHints=true|false (ALPHA - 默认值=false)<br/>
|
||||
TopologyManager=true|false (BETA - 默认值=true)<br/>
|
||||
ValidateProxyRedirects=true|false (BETA - 默认值=true)<br/>
|
||||
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)<br/>
|
||||
WarningHeaders=true|false (BETA - 默认值=true)<br/>
|
||||
WinDSR=true|false (ALPHA - 默认值=false)<br/>
|
||||
WinOverlay=true|false (BETA - 默认值=true)<br/>
|
||||
WindowsEndpointSliceProxying=true|false (BETA - 默认值=true)
|
||||
WindowsHostProcessContainers=true|false (ALPHA - 默认值=false)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
id: pod-disruption
|
||||
title: Pod 干扰
|
||||
full_link: /docs/concepts/workloads/pods/disruptions/
|
||||
date: 2021-05-12
|
||||
short_description: >
|
||||
自愿或非自愿地终止节点上的 pod 的过程.
|
||||
|
||||
aka:
|
||||
related:
|
||||
- pod
|
||||
- container
|
||||
tags:
|
||||
- operation
|
||||
---
|
||||
|
||||
<!--
|
||||
---
|
||||
id: pod-disruption
|
||||
title: Pod Disruption
|
||||
full_link: /docs/concepts/workloads/pods/disruptions/
|
||||
date: 2021-05-12
|
||||
short_description: >
|
||||
The process by which Pods on Nodes are terminated either voluntarily or involuntarily.
|
||||
|
||||
aka:
|
||||
related:
|
||||
- pod
|
||||
- container
|
||||
tags:
|
||||
- operation
|
||||
---
|
||||
-->
|
||||
|
||||
<!--
|
||||
[Pod disruption](/docs/concepts/workloads/pods/disruptions/) is the process by which
|
||||
Pods on Nodes are terminated either voluntarily or involuntarily.
|
||||
-->
|
||||
|
||||
[pod 干扰](/zh/docs/concepts/workloads/pods/disruptions/) 是指节点上的 pod 被自愿或非自愿终止的过程。
|
||||
|
||||
<!--more-->
|
||||
|
||||
<!--
|
||||
Voluntary disruptions are started intentionally by application owners or cluster
|
||||
administrators. Involuntary disruptions are unintentional and can be triggered by
|
||||
unavoidable issues like Nodes running out of resources, or by accidental deletions.
|
||||
-->
|
||||
|
||||
自愿干扰是由应用程序所有者或集群管理员有意启动的。非自愿干扰是无意的,可能由不可避免的问题触发,如节点耗尽资源或意外删除。
|
|
@ -357,7 +357,7 @@ kubectl get pods -o json | jq -c 'path(..)|[.[]|tostring]|join(".")'
|
|||
|
||||
# Produce ENV for all pods, assuming you have a default container for the pods, default namespace and the `env` command is supported.
|
||||
# Helpful when running any supported command across all pods, not just `env`
|
||||
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod env; done
|
||||
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done
|
||||
```
|
||||
-->
|
||||
```bash
|
||||
|
@ -436,7 +436,7 @@ kubectl get pods -o json | jq -c 'path(..)|[.[]|tostring]|join(".")'
|
|||
|
||||
# 假设你的 Pods 有默认的容器和默认的名字空间,并且支持 'env' 命令,可以使用以下脚本为所有 Pods 生成 ENV 变量。
|
||||
# 该脚本也可用于在所有的 Pods 里运行任何受支持的命令,而不仅仅是 'env'。
|
||||
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod env; done
|
||||
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done
|
||||
```
|
||||
|
||||
<!--
|
||||
|
|
|
@ -366,8 +366,8 @@ kubectl:
|
|||
kubectl get deployment nginx-app
|
||||
```
|
||||
```
|
||||
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||
nginx-app 1 1 1 1 2m
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
nginx-app 1/1 1 1 2m
|
||||
```
|
||||
|
||||
```shell
|
||||
|
|
|
@ -488,9 +488,41 @@ kubectl [flags]
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "envvars" %}}
|
||||
|
||||
<table style="width: 100%; table-layout: fixed;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10px;" />
|
||||
<col span="1" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">KUBECONFIG</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
Path to the kubectl configuration ("kubeconfig") file. Default: "$HOME/.kube/config"
|
||||
-->
|
||||
kubectl 的配置 ("kubeconfig") 文件的路径。默认值: "$HOME/.kube/config"
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">KUBECTL_COMMAND_HEADERS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td><td style="line-height: 130%; word-wrap: break-word;">
|
||||
<!--
|
||||
When set to false, turns off extra HTTP headers detailing invoked kubectl command (Kubernetes version v1.22 or later)
|
||||
-->
|
||||
设置为 false 时,关闭用于详细说明被调用的 kubectl 命令的额外 HTTP 标头 (Kubernetes 版本为 v1.22 或者更高)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## {{% heading "seealso" %}}
|
||||
|
||||
|
|
|
@ -682,52 +682,6 @@ a local etcd instance running in a Pod with following attributes:
|
|||
['kubeadm init phase etcd local'](/zh/docs/reference/setup-tools/kubeadm/kubeadm-init-phase/#cmd-phase-etcd)
|
||||
命令单独为本地 etcd 生成静态 Pod 清单
|
||||
|
||||
<!--
|
||||
### Optional Dynamic Kubelet Configuration
|
||||
-->
|
||||
### 可选的动态 Kubelet 配置 {#optional-dynamic-kubelet-configuration}
|
||||
|
||||
<!--
|
||||
To use this functionality call `kubeadm alpha kubelet config enable-dynamic`. It writes the kubelet init configuration
|
||||
into `/var/lib/kubelet/config/init/kubelet` file.
|
||||
-->
|
||||
要使用这个功能,请执行 `kubeadm alpha kubelet config enable-dynamic`。
|
||||
它将 kubelet 的初始化配置写入 `/var/lib/kubelet/config/init/kubelet` 文件。
|
||||
|
||||
<!--
|
||||
The init configuration is used for starting the kubelet on this specific node, providing an alternative for the kubelet drop-in file;
|
||||
such configuration will be replaced by the kubelet base configuration as described in following steps.
|
||||
See [set Kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file) for additional information.
|
||||
-->
|
||||
初始化配置用于在这个特定节点上启动 kubelet,从而为 kubelet 插件文件提供了
|
||||
一种替代方法。如以下步骤中所述,这种配置将由 kubelet 基本配置所替代。
|
||||
请参阅[通过配置文件设置 Kubelet 参数](/zh/docs/tasks/administer-cluster/kubelet-config-file)
|
||||
了解更多信息。
|
||||
|
||||
<!-- Please note that: -->
|
||||
请注意:
|
||||
|
||||
<!--
|
||||
1. To make dynamic kubelet configuration work, flag `--dynamic-config-dir=/var/lib/kubelet/config/dynamic` should be specified
|
||||
in `/etc/systemd/system/kubelet.service.d/10-kubeadm.conf`
|
||||
1. The kubelet configuration can be changed by passing a `KubeletConfiguration` object to `kubeadm init` or `kubeadm join` by using
|
||||
a configuration file `--config some-file.yaml`. The `KubeletConfiguration` object can be separated from other objects such
|
||||
as `InitConfiguration` using the `---` separator. For more details have a look at the `kubeadm config print-default` command.
|
||||
-->
|
||||
1. 要使动态 kubelet 配置生效,应在 `/etc/systemd/system/kubelet.service.d/10-kubeadm.conf`
|
||||
中指定 `--dynamic-config-dir=/var/lib/kubelet/config/dynamic` 标志。
|
||||
1. 通过使用配置文件 `--config some-file.yaml` 将 `KubeletConfiguration` 对象传递给
|
||||
`kubeadm init` 或 `kubeadm join` 来更改 kubelet 配置。
|
||||
可以使用 `---` 分隔符将 `KubeletConfiguration` 对象与其他对象(例如 `InitConfiguration`)
|
||||
分开。更多的详细信息,请查看 `kubeadm config print-default` 命令。
|
||||
|
||||
<!--
|
||||
For more details about the `KubeletConfiguration` struct, take a look at the
|
||||
[`KubeletConfiguration` reference](/docs/reference/config-api/kubelet-config.v1beta1/).
|
||||
-->
|
||||
有关 `KubeletConfiguration` 结构的详细信息,可参阅
|
||||
[`KubeletConfiguration` 参考文档](/docs/reference/config-api/kubelet-config.v1beta1/)。
|
||||
|
||||
<!--
|
||||
### Wait for the control plane to come up
|
||||
-->
|
||||
|
@ -750,30 +704,6 @@ After the control plane is up, kubeadm completes the tasks described in followin
|
|||
kubeadm 依靠 kubelet 拉取控制平面镜像并将其作为静态 Pod 正确运行。
|
||||
控制平面启动后,kubeadm 将完成以下段落中描述的任务。
|
||||
|
||||
<!--
|
||||
### (optional) Write base kubelet configuration
|
||||
-->
|
||||
### (可选)编写基本 kubelet 配置 {#write-base-kubelet-configuration}
|
||||
|
||||
{{< feature-state for_k8s_version="v1.11" state="beta" >}}
|
||||
|
||||
<!--
|
||||
If kubeadm is invoked with `--feature-gates=DynamicKubeletConfig`:
|
||||
-->
|
||||
如果带 `--feature-gates=DynamicKubeletConfig` 参数调用 kubeadm,则 kubeadm:
|
||||
|
||||
<!--
|
||||
1. Write the kubelet base configuration into the `kubelet-base-config-v1.9` ConfigMap in the `kube-system` namespace
|
||||
2. Creates RBAC rules for granting read access to that ConfigMap to all bootstrap tokens and all kubelet instances
|
||||
(that is `system:bootstrappers:kubeadm:default-node-token` and `system:nodes` groups)
|
||||
3. Enable the dynamic kubelet configuration feature for the initial control-plane node by pointing `Node.spec.configSource` to the newly-created ConfigMap
|
||||
-->
|
||||
1. 将 kubelet 基本配置写入 `kube-system` 名字空间的 `kubelet-base-config-v1.9` ConfigMap 中。
|
||||
2. 创建 RBAC 规则,以授予对所有引导令牌和所有 kubelet 实例对该 ConfigMap 的读取访问权限
|
||||
(即 `system:bootstrappers:kubeadm:default-node-token` 组和 `system:nodes` 组)
|
||||
3. 通过将 `Node.spec.configSource` 指向新创建的 ConfigMap,为初始控制平面节点启用动态
|
||||
kubelet 配置功能。
|
||||
|
||||
<!--
|
||||
### Save the kubeadm ClusterConfiguration in a ConfigMap for later reference
|
||||
-->
|
||||
|
@ -1229,36 +1159,3 @@ kubelet 加入集群,同时删除 `bootstrap-kubelet.conf`。
|
|||
该成员在 `kubeadm init` 过程中被授予对 CSR API 的访问权
|
||||
- 根据 `kubeadm init` 过程的配置,自动 CSR 审批由 csrapprover 控制器管理
|
||||
|
||||
<!--
|
||||
### (optional) Write init kubelet configuration
|
||||
-->
|
||||
### (可选)写入初始的 kubelet 配置 {#write-init-kubelet-configuration}
|
||||
|
||||
{{< feature-state for_k8s_version="v1.11" state="beta" >}}
|
||||
|
||||
<!--
|
||||
If kubeadm is invoked with `--feature-gates=DynamicKubeletConfig`:
|
||||
-->
|
||||
如果带 `--feature-gates=DynamicKubeletConfig` 参数调用 kubeadm,则 kubeadm:
|
||||
|
||||
<!--
|
||||
1. Read the kubelet base configuration from the `kubelet-base-config-v1.x` ConfigMap in the `kube-system` namespace using the
|
||||
Bootstrap Token credentials, and write it to disk as kubelet init configuration file `/var/lib/kubelet/config/init/kubelet`
|
||||
2. As soon as kubelet starts with the Node's own credential (`/etc/kubernetes/kubelet.conf`), update current node configuration
|
||||
specifying that the source for the node/kubelet configuration is the above ConfigMap.
|
||||
-->
|
||||
1. 使用引导令牌凭证从 `kube-system` 名字空间中 ConfigMap `kubelet-base-config-v1.x`
|
||||
中读取 kubelet 基本配置,
|
||||
并将其作为 kubelet 初始配置文件 `/var/lib/kubelet/config/init/kubelet` 写入磁盘。
|
||||
2. 一旦 kubelet 开始使用节点自己的凭据(`/etc/kubernetes/kubelet.conf`),
|
||||
就更新当前节点配置,指定该节点或 kubelet 配置来自上述 ConfigMap。
|
||||
|
||||
<!-- Please note that: -->
|
||||
请注意:
|
||||
|
||||
<!--
|
||||
1. To make dynamic kubelet configuration work, flag `--dynamic-config-dir=/var/lib/kubelet/config/dynamic` should be specified in `/etc/systemd/system/kubelet.service.d/10-kubeadm.conf`
|
||||
-->
|
||||
1. 要使动态 kubelet 配置生效,应在 `/etc/systemd/system/kubelet.service.d/10-kubeadm.conf`
|
||||
中指定 `--dynamic-config-dir=/var/lib/kubelet/config/dynamic` 标志。
|
||||
|
||||
|
|
|
@ -113,7 +113,6 @@ their authors, not the Kubernetes team.
|
|||
| Python | [github.com/tomplus/kubernetes_asyncio](https://github.com/tomplus/kubernetes_asyncio) |
|
||||
| Python | [github.com/Frankkkkk/pykorm](https://github.com/Frankkkkk/pykorm) |
|
||||
| Ruby | [github.com/abonas/kubeclient](https://github.com/abonas/kubeclient) |
|
||||
| Ruby | [github.com/Ch00k/kuber](https://github.com/Ch00k/kuber) |
|
||||
| Ruby | [github.com/k8s-ruby/k8s-ruby](https://github.com/k8s-ruby/k8s-ruby) |
|
||||
| Ruby | [github.com/kontena/k8s-client](https://github.com/kontena/k8s-client) |
|
||||
| Rust | [github.com/clux/kube-rs](https://github.com/clux/kube-rs) |
|
||||
|
@ -148,7 +147,6 @@ their authors, not the Kubernetes team.
|
|||
| Python | [github.com/tomplus/kubernetes_asyncio](https://github.com/tomplus/kubernetes_asyncio) |
|
||||
| Python | [github.com/Frankkkkk/pykorm](https://github.com/Frankkkkk/pykorm) |
|
||||
| Ruby | [github.com/abonas/kubeclient](https://github.com/abonas/kubeclient) |
|
||||
| Ruby | [github.com/Ch00k/kuber](https://github.com/Ch00k/kuber) |
|
||||
| Ruby | [github.com/k8s-ruby/k8s-ruby](https://github.com/k8s-ruby/k8s-ruby) |
|
||||
| Ruby | [github.com/kontena/k8s-client](https://github.com/kontena/k8s-client) |
|
||||
| Rust | [github.com/clux/kube-rs](https://github.com/clux/kube-rs) |
|
||||
|
|
|
@ -55,7 +55,7 @@ If you don't want to manage a Kubernetes cluster yourself, you could pick a mana
|
|||
[certified platforms](/docs/setup/production-environment/turnkey-solutions/).
|
||||
There are also other standardized and custom solutions across a wide range of cloud and
|
||||
bare metal environments.
|
||||
-->。
|
||||
-->
|
||||
可以[下载 Kubernetes](/releases/download/),在本地机器、云或你自己的数据中心上部署 Kubernetes 集群。
|
||||
如果你不想自己管理 Kubernetes 集群,则可以选择托管服务,包括[经过认证的平台](/zh/docs/setup/production-environment/turnkey-solutions/)。
|
||||
在各种云和裸机环境中,还有其他标准化和定制的解决方案。
|
||||
|
|
|
@ -236,8 +236,8 @@ communication:
|
|||
|
||||
```
|
||||
ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 \
|
||||
--cert=/etc/kubernetes/pki/etcd/server.crt \
|
||||
--key=/etc/kubernetes/pki/etcd/server.key \
|
||||
--cert=/etc/kubernetes/pki/etcd/client.crt \
|
||||
--key=/etc/kubernetes/pki/etcd/client.key \
|
||||
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
|
||||
member list
|
||||
```
|
||||
|
@ -253,8 +253,8 @@ ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 \
|
|||
|
||||
```
|
||||
ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 \
|
||||
--cert=/etc/kubernetes/pki/etcd/server.crt \
|
||||
--key=/etc/kubernetes/pki/etcd/server.key \
|
||||
--cert=/etc/kubernetes/pki/etcd/client.crt \
|
||||
--key=/etc/kubernetes/pki/etcd/client.key \
|
||||
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
|
||||
member list
|
||||
```
|
||||
|
@ -645,6 +645,12 @@ etcd 支持从 [major.minor](http://semver.org/) 或其他不同 patch 版本的
|
|||
ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 snapshot restore snapshotdb
|
||||
```
|
||||
|
||||
恢复时也可以指定操作选项,例如:
|
||||
|
||||
```
|
||||
ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshotdb
|
||||
```
|
||||
|
||||
有关从快照文件还原集群的详细信息和示例,请参阅
|
||||
[etcd 灾难恢复文档](https://etcd.io/docs/current/op-guide/recovery/#restoring-a-cluster)。
|
||||
|
||||
|
@ -665,4 +671,4 @@ ETCDCTL_API=3 etcdctl --endpoints 10.2.0.9:2379 snapshot restore snapshotdb
|
|||
我们还建议重启所有组件(例如 `kube-scheduler`、`kube-controller-manager`、`kubelet`),以确保它们不会
|
||||
依赖一些过时的数据。请注意,实际中还原会花费一些时间。
|
||||
在还原过程中,关键组件将丢失领导锁并自行重启。
|
||||
{{< note >}}
|
||||
{{< /note >}}
|
||||
|
|
|
@ -354,8 +354,8 @@ We have created a deployment whose replica size is 2 that is running the pod cal
|
|||
kubectl get deployment
|
||||
```
|
||||
```
|
||||
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||
snowflake 2 2 2 2 2m
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
snowflake 2/2 2 2 2m
|
||||
```
|
||||
|
||||
```shell
|
||||
|
@ -402,8 +402,8 @@ kubectl get deployment
|
|||
```
|
||||
|
||||
```
|
||||
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||
cattle 5 5 5 5 10s
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
cattle 5/5 5 5 10s
|
||||
```
|
||||
|
||||
```shell
|
||||
|
|
|
@ -127,7 +127,7 @@ the pod can be scheduled. In most cases, `hostPort` is unnecessary; try using a
|
|||
service object to expose your pod. If you do require `hostPort` then you can
|
||||
only schedule as many pods as there are nodes in your container cluster.
|
||||
-->
|
||||
#### 使用hostPort
|
||||
#### 使用 hostPort
|
||||
|
||||
当你将一个 Pod 绑定到某 `hostPort` 时,这个 Pod 能被调度的位置数量有限。
|
||||
在大多数情况下,`hostPort` 是不必要的; 尝试使用服务对象来暴露你的 Pod。
|
||||
|
|
|
@ -122,7 +122,7 @@ root@shell-demo:/# ps aux | grep nginx
|
|||
## Writing the root page for nginx
|
||||
-->
|
||||
|
||||
## 编写 nginx 的 根页面
|
||||
## 编写 nginx 的根页面
|
||||
|
||||
<!--
|
||||
Look again at the configuration file for your Pod. The Pod
|
||||
|
|
|
@ -135,8 +135,8 @@ Now that the server is running, we will create the autoscaler using
|
|||
The following command will create a Horizontal Pod Autoscaler that maintains between 1 and 10 replicas of the Pods
|
||||
controlled by the php-apache deployment we created in the first step of these instructions.
|
||||
Roughly speaking, HPA will increase and decrease the number of replicas
|
||||
(via the deployment) to maintain an average CPU utilization across all Pods of 50%
|
||||
(since each pod requests 200 milli-cores by `kubectl run`), this means average CPU usage of 100 milli-cores).
|
||||
(via the deployment) to maintain an average CPU utilization across all Pods of 50%.
|
||||
Since each pod requests 200 milli-cores by `kubectl run`, this means an average CPU usage of 100 milli-cores.
|
||||
See [here](/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details) for more details on the algorithm.
|
||||
-->
|
||||
## 创建 Horizontal Pod Autoscaler {#create-horizontal-pod-autoscaler}
|
||||
|
@ -147,8 +147,8 @@ See [here](/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-detai
|
|||
以下命令将创建一个 Horizontal Pod Autoscaler 用于控制我们上一步骤中创建的
|
||||
Deployment,使 Pod 的副本数量维持在 1 到 10 之间。
|
||||
大致来说,HPA 将(通过 Deployment)增加或者减少 Pod 副本的数量以保持所有 Pod
|
||||
的平均 CPU 利用率在 50% 左右(由于每个 Pod 请求 200 毫核的 CPU,这意味着平均
|
||||
CPU 用量为 100 毫核)。
|
||||
的平均 CPU 利用率在 50% 左右。由于每个 Pod 请求 200 毫核的 CPU,这意味着平均
|
||||
CPU 用量为 100 毫核。
|
||||
算法的详情请参阅[相关文档](/zh/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details)。
|
||||
|
||||
```shell
|
||||
|
|
|
@ -32,7 +32,7 @@ If you have an alias for kubectl, you can extend shell completion to work with t
|
|||
|
||||
```zsh
|
||||
echo 'alias k=kubectl' >>~/.zshrc
|
||||
echo 'complete -F __start_kubectl k' >>~/.zshrc
|
||||
echo 'compdef __start_kubectl k' >>~/.zshrc
|
||||
```
|
||||
|
||||
<!--
|
||||
|
|
|
@ -22,13 +22,13 @@ card:
|
|||
## {{% heading "prerequisites" %}}
|
||||
|
||||
<!--
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew latestVersion >}} client can communicate with v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}}, and v{{< skew nextMinorVersion >}} control planes.
|
||||
Using the latest version of kubectl helps avoid unforeseen issues.
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew currentVersion >}} client can communicate with v{{< skew currentVersionAddMinor -1 >}}, v{{< skew currentVersionAddMinor 0 >}}, and v{{< skew currentVersionAddMinor 1 >}} control planes.
|
||||
Using the latest compatible version of kubectl helps avoid unforeseen issues.
|
||||
-->
|
||||
kubectl 版本和集群版本之间的差异必须在一个小版本号内。
|
||||
例如:v{{< skew latestVersion >}} 版本的客户端能与 v{{< skew prevMinorVersion >}}、
|
||||
v{{< skew latestVersion >}} 和 v{{< skew nextMinorVersion >}} 版本的控制面通信。
|
||||
用最新版的 kubectl 有助于避免不可预见的问题。
|
||||
例如:v{{< skew currentVersion >}} 版本的客户端能与 v{{< skew currentVersionAddMinor -1 >}}、
|
||||
v{{< skew currentVersionAddMinor 0 >}} 和 v{{< skew currentVersionAddMinor 1 >}} 版本的控制面通信。
|
||||
用最新兼容版的 kubectl 有助于避免不可预见的问题。
|
||||
|
||||
<!--
|
||||
## Install kubectl on Linux
|
||||
|
|
|
@ -22,13 +22,13 @@ card:
|
|||
## {{% heading "prerequisites" %}}
|
||||
|
||||
<!--
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew latestVersion >}} client can communicate with v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}}, and v{{< skew nextMinorVersion >}} control planes.
|
||||
Using the latest version of kubectl helps avoid unforeseen issues.
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew currentVersion >}} client can communicate with v{{< skew currentVersionAddMinor -1 >}}, v{{< skew currentVersionAddMinor 0 >}}, and v{{< skew currentVersionAddMinor 1 >}} control planes.
|
||||
Using the latest compatible version of kubectl helps avoid unforeseen issues.
|
||||
-->
|
||||
kubectl 版本和集群之间的差异必须在一个小版本号之内。
|
||||
例如:v{{< skew latestVersion >}} 版本的客户端能与 v{{< skew prevMinorVersion >}}、
|
||||
v{{< skew latestVersion >}} 和 v{{< skew nextMinorVersion >}} 版本的控制面通信。
|
||||
用最新版本的 kubectl 有助于避免不可预见的问题。
|
||||
例如:v{{< skew currentVersion >}} 版本的客户端能与 v{{< skew currentVersionAddMinor -1 >}}、
|
||||
v{{< skew currentVersionAddMinor 0 >}} 和 v{{< skew currentVersionAddMinor 1 >}} 版本的控制面通信。
|
||||
用最新兼容版本的 kubectl 有助于避免不可预见的问题。
|
||||
|
||||
<!--
|
||||
## Install kubectl on macOS
|
||||
|
|
|
@ -22,13 +22,13 @@ card:
|
|||
## {{% heading "prerequisites" %}}
|
||||
|
||||
<!--
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew latestVersion >}} client can communicate with v{{< skew prevMinorVersion >}}, v{{< skew latestVersion >}}, and v{{< skew nextMinorVersion >}} control planes.
|
||||
Using the latest version of kubectl helps avoid unforeseen issues.
|
||||
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v{{< skew currentVersion >}} client can communicate with v{{< skew currentVersionAddMinor -1 >}}, v{{< skew currentVersionAddMinor 0 >}}, and v{{< skew currentVersionAddMinor 1 >}} control planes.
|
||||
Using the latest compatible version of kubectl helps avoid unforeseen issues.
|
||||
-->
|
||||
kubectl 版本和集群版本之间的差异必须在一个小版本号内。
|
||||
例如:v{{< skew latestVersion >}} 版本的客户端能与 v{{< skew prevMinorVersion >}}、
|
||||
v{{< skew latestVersion >}} 和 v{{< skew nextMinorVersion >}} 版本的控制面通信。
|
||||
用最新版的 kubectl 有助于避免不可预见的问题。
|
||||
例如:v{{< skew currentVersion >}} 版本的客户端能与 v{{< skew currentVersionAddMinor -1 >}}、
|
||||
v{{< skew currentVersionAddMinor 0 >}} 和 v{{< skew currentVersionAddMinor 1 >}} 版本的控制面通信。
|
||||
用最新兼容版的 kubectl 有助于避免不可预见的问题。
|
||||
|
||||
<!--
|
||||
## Install kubectl on Windows
|
||||
|
|
|
@ -320,7 +320,7 @@ kubectl get events | grep hello-apparmor
|
|||
我们可以通过检查该配置文件的 proc attr 来验证容器是否实际使用该配置文件运行:
|
||||
|
||||
```shell
|
||||
kubectl exec hello-apparmor cat /proc/1/attr/current
|
||||
kubectl exec hello-apparmor -- cat /proc/1/attr/current
|
||||
```
|
||||
```
|
||||
k8s-apparmor-example-deny-write (enforce)
|
||||
|
@ -330,7 +330,7 @@ k8s-apparmor-example-deny-write (enforce)
|
|||
最后,我们可以看到如果试图通过写入文件来违反配置文件,会发生什么情况:
|
||||
|
||||
```shell
|
||||
kubectl exec hello-apparmor touch /tmp/test
|
||||
kubectl exec hello-apparmor -- touch /tmp/test
|
||||
```
|
||||
```
|
||||
touch: /tmp/test: Permission denied
|
||||
|
|
|
@ -119,7 +119,7 @@ By default, the dashboard is only accessible from within the internal Kubernetes
|
|||
The `dashboard` command creates a temporary proxy to make the dashboard accessible from outside the Kubernetes virtual network.
|
||||
|
||||
To stop the proxy, run `Ctrl+C` to exit the process.
|
||||
After the command exits, the dashboard remains running in Kubernetes cluster.
|
||||
After the command exits, the dashboard remains running in the Kubernetes cluster.
|
||||
You can run the `dashboard` command again to create another proxy to access the dashboard.
|
||||
-->
|
||||
{{< note >}}
|
||||
|
@ -144,9 +144,9 @@ You can run the `dashboard` command again to create another proxy to access the
|
|||
## 使用 URL 打开仪表板
|
||||
|
||||
<!--
|
||||
If you don't want to open a web browser, run the dashboard command with the url flag to emit a URL:
|
||||
If you don't want to open a web browser, run the dashboard command with the `--url` flag to emit a URL:
|
||||
-->
|
||||
如果你不想打开 Web 浏览器,请使用 url 标志运行显示板命令以得到 URL:
|
||||
如果你不想打开 Web 浏览器,请使用 `--url` 标志运行显示板命令以得到 URL:
|
||||
|
||||
```shell
|
||||
minikube dashboard --url
|
||||
|
@ -330,7 +330,7 @@ Kubernetes [*Service*](/docs/concepts/services-networking/service/).
|
|||
4. 仅限 Katacoda 环境:单击加号,然后单击 **选择要在主机 1 上查看的端口**。
|
||||
|
||||
<!--
|
||||
5. Katacoda environment only: Note the 5 digit port number displayed opposite to `8080` in services output. This port number is randomly generated and it can be different for you. Type your number in the port number text box, then click Display Port. Using the example from earlier, you would type `30369`.
|
||||
5. Katacoda environment only: Note the 5-digit port number displayed opposite to `8080` in services output. This port number is randomly generated and it can be different for you. Type your number in the port number text box, then click Display Port. Using the example from earlier, you would type `30369`.
|
||||
|
||||
This opens up a browser window that serves your app and shows the app's response.
|
||||
-->
|
||||
|
|
|
@ -49,6 +49,9 @@ other = "我是..."
|
|||
[docs_label_users]
|
||||
other = "用户"
|
||||
|
||||
[envvars_heading]
|
||||
other = "环境变量"
|
||||
|
||||
[examples_heading]
|
||||
other = "示例"
|
||||
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
schedules:
|
||||
- release: 1.22
|
||||
next: 1.22.4
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
next: 1.22.5
|
||||
cherryPickDeadline: 2021-12-10
|
||||
targetDate: 2021-12-15
|
||||
endOfLifeDate: 2022-10-28
|
||||
previousPatches:
|
||||
- release: 1.22.4
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
- release: 1.22.3
|
||||
cherryPickDeadline: 2021-10-22
|
||||
targetDate: 2021-10-27
|
||||
|
@ -15,11 +18,14 @@ schedules:
|
|||
cherryPickDeadline: 2021-08-16
|
||||
targetDate: 2021-08-19
|
||||
- release: 1.21
|
||||
next: 1.21.7
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
next: 1.21.8
|
||||
cherryPickDeadline: 2021-12-10
|
||||
targetDate: 2021-12-15
|
||||
endOfLifeDate: 2022-06-28
|
||||
previousPatches:
|
||||
- release: 1.21.7
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
- release: 1.21.6
|
||||
cherryPickDeadline: 2021-10-22
|
||||
targetDate: 2021-10-27
|
||||
|
@ -40,11 +46,14 @@ schedules:
|
|||
targetDate: 2021-05-12
|
||||
note: Regression https://groups.google.com/g/kubernetes-dev/c/KuF8s2zueFs
|
||||
- release: 1.20
|
||||
next: 1.20.13
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
next: 1.20.14
|
||||
cherryPickDeadline: 2021-12-10
|
||||
targetDate: 2021-12-15
|
||||
endOfLifeDate: 2022-02-28
|
||||
previousPatches:
|
||||
- release: 1.20.13
|
||||
cherryPickDeadline: 2021-11-12
|
||||
targetDate: 2021-11-17
|
||||
- release: 1.20.12
|
||||
cherryPickDeadline: 2021-10-22
|
||||
targetDate: 2021-10-27
|
||||
|
|
|
@ -227,7 +227,8 @@
|
|||
|
||||
/docs/reference/kubernetes-api/labels-annotations-taints/ /docs/reference/labels-annotations-taints/ 301
|
||||
|
||||
/docs/reporting-security-issues/ /security/ 301
|
||||
/docs/reporting-security-issues/ /docs/reference/issues-security/security/ 301
|
||||
/security/ /docs/reference/issues-security/security/ 302
|
||||
|
||||
/docs/roadmap/ https://github.com/kubernetes/kubernetes/milestones/ 301
|
||||
/docs/samples/ /docs/tutorials/ 301
|
||||
|
|
Loading…
Reference in New Issue