Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
AWSÖйú Kubernetes ´î½¨Ö¸ÄÏ
 
×÷Õߣº Cliven_ken
  2006  次浏览      27
 2020-3-9
 
±à¼­ÍƼö:
±¾ÎÄÏò´ó¼Ò½éÉÜKops-cn,²½Öè3 ÐÞ¸ÄMakefile,µ÷Õû¸ºÔؾùºâÆ÷,µÇ¼K8s¼¯ÈºÖеĽڵã,Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­¡¢ÍƼö¡£

1. ×¼±¸

1.1 ÍøÂç

´´½¨µ¯ÐÔIPÓÃÓÚK8SÍøÂçͳһµÄ³ö¿Ú

´´½¨VPC

¹«ÍøÓÃÓÚ±¤ÀÝ»ú¡¢VPN·þÎñÆ÷£¬Ë½ÓÐÍøÂçÓÃÓÚ²¿ÊðK8S·þÎñ¼¯Èº

ÉèÖÃһЩ±ØÒªµÄ²ÎÊý£¬´Ë´¦ÐèҪעÒâÉèÖøղŷÖÅäµÃµ½µÄNAT IP¡£

´´½¨Íê³ÉÖ®ºó×¢ÒâÒª¸øVPCÉÏ´òÉϱêÇ©Èà KubernetesÄܹ»Ê¶±ðºÍ¹ÜÀíµ½ÕâЩVPC

VPCÐèÒª´òÉϵıêÓÐ

È»ºó¼Ç¼Ï¸ÃVPCµÄID

vpc-0761a396fcb3a9ddd

½ÓÏÂÀ´µ½ ×ÓÍøÒ³Ãæ£¬´´½¨×ÓÍø£ºvpcÑ¡Ôñ¸Õ²Å´´½¨µÄVPC¡¢Ñ¡ÔñÒ»¸ö×ÓÍøµØÖ·¶Î£¬×¢ÒâÑ¡ÔñÒ»¸ö¿ÉÑ¡Çø¡£

ÓÃÏàͬµÄ·½Ê½´´½¨3¸öÕâÑùµÄ×ÓÍø£¬×¢Ò⣺ÿ¸ö×ÓÍø±ØÐëÒªÔÚ²»Í¬µÄ¿ÉÓÃÇøÖУ¨±£³Ö¸ß¿ÉÓã©

×ÓÍø´´½¨Íê³ÉÖ®ºóͬÑùµÄÐèҪΪ×ÓÍø¶¼´òÉϱêÇ©ÕâÑùµÄ²ÅÄÜÈÃKubernetesʶ±ðºÍ¹ÜÀíµ½¡£³ýÁËÉÏÃæÌá¼°µÄÄÇÁ½¸ö±êǩ֮Í⻹ÐèÔö¼ÓÁ½ÖÖÀàÐ͵ıêÇ©£¬ÕâÁ½ÖÖÀàÐ͵ıêÇ©Õë¶ÔÓÚ¹«ÓÐ×ÓÍøºÍ˽ÓÐ×ÓÍøÉèÖá£

Òò´ËÎÒÃÇΪ¸Õ²Å´´½¨µÄ¹«ÓÐ×ÓÍøÔö¼ÓÉÏKubernetesCluster¡¢kubernetes.io/cluster/cluster.unisign.k8s.localºÍkubernetes.io/role/elbµÄ±êÇ©¡£

ΪÈý¸ö˽ÓÐ×ÓÍø¶¼Ôö¼ÓÉÏKubernetesCluster¡¢kubernetes.io/cluster/cluster.unisign.k8s.localºÍkubernetes.io/role/internal-elbµÄ±êÇ©¡£

´´½¨Íê³Éºó¼Ç¼ÏÂÕâÈý¸ö˽ÓÐ×ÓÍøµÄID£¬ÔÚKopsÅäÖÃÖн«Ê¹Óõ½

subnet-0efb59b551dd47dc2

subnet-0a4fa7de20bf500ef

subnet-0ba68ae43a6d71da0

1.2 ´æ´¢Í°

´´½¨Ò»¸öS3£¬Õâ¸ö´æ´¢Í°ÓÃÓÚ·ÅÖÃK8sµÄÅäÖÃÐÅÏ¢¡£

±£³ÖĬÈÏÉèÖÃÖ±½Ó´´½¨¾Í¿ÉÒÔ

´´½¨Íê³Éºó¼Ç¼Ï¸ÃͰµÄÃû³Æ£¨k8s-storage£©¾Í¿ÉÒÔ¡£

1.3 ÃÜÔ¿

´´½¨Ò»¸öÓÃÓڵǼaws cliµÄAK¡¢SK

Îҵݲȫƾ֤

´´½¨·ÃÎÊÃÜÔ¿

¼Ç¼ÏÂAKºÍSKÔÚʹÓÃKOPSʱÐèҪʹÓõ½

´´½¨Ò»¸öK8S¼¯ÈºµÇ¼ʹÓõÄרÓÃÃÜÔ¿¶Ô

µ½EC2Ò³Ãæ µÄÍøÂçÓ밲ȫ Ï嵀 ÃÜÔ¿¶Ô

ÊäÈëÃÜÔ¿¶ÔÃû³Æ£¬´´½¨ÃÜÔ¿¶Ô

´´½¨Íê³Éºó»á×Ô¶¯ÏÂÔØÃÜÔ¿¶Ô£¬ÇëÍ×ÉÆ±£¹Ü¸ÃpemÎļþ£¬Ò»»á½«»áÓõ½¡£

1.4 ±¤ÀÝ»ú

µ½EC2Ï´´½¨Ò»¸öʵÀý Amazon Linux 2 AMI (HVM), SSD Volume Type

×¢ÒâÅäÖÃһϣ¬·ÖÅäÍøÂçΪ¸Õ²Å´´½¨µÄVPCºÍ¹«ÓÐ×ÓÍø£¬²¢ÇÒ·ÖÅ乫ÓÐIP

´´½¨Íê³ÉÖ®ºóʹÓõǼµ½Õą̂±¤ÀÝ»úÉÏ£¬½ÓÏÂÀ´ÐèÒªÉÏ´«¸Õ²ÅµÃµ½µÄpemÃÜÔ¿¶ÔÎļþ¡£

½«K8sSSH.pemÒÆ¶¯µ½/home/ec2-user/.sshĿ¼Ï£¬È»ºóÉú³É¹«Ô¿

chmod 600 ~/.ssh/K8sSSH.pem
ssh-keygen -f ~/.ssh/K8sSSH.pem
-y > ~/.ssh/K8sSSH.pub
chmod 600 ~/.ssh/K8sSSH.pub
chmod 400 ~/.ssh/K8sSSH.pem

×¢Ò⣺ÔڵǼK8s¼¯ÈºÖеĽڵãʱ£¬»¹ÐèÒª½«~/.ssh/K8sSSH.pem ȨÏÞ¸ÄΪ 400£¬·ñÔò»áÒýÆðȨÏÞ´íÎó¶øµÇ¼²»Á˵ÄÎÊÌâ¡£

ÅäÖÃAWS Cli£¬Ê¹Óøղŵõ½µÄAKºÍSK£¬ÌîÈ뼯ȺËùÔÚµÄÇøÓò£¨ÄþÏľÍÊÇcn-northwest-1£©

aws configure

Default output format ±£³ÖĬÈÏ£¬¿ÉÉèÖÃΪjson»òÕß table

µ½ÕâÀï×¼±¸µÄ²Ù×÷»ù±¾Íê³É

2. Kops-cn

°´ÕÕ Kops-cn README ²½Ö裺 1¡¢2¡¢3 ²Ù×÷

2.1 ²½Öè3 ÐÞ¸ÄMakefile

KOPS_STATE_STORE ´Ë´¦·ÅÖà s3:// + ´æ´¢Í°µÄÃû³Æ¡£ÀýÈ磺s3://k8s-storage

TARGET_REGION ¾ÍÊDz¿ÊðµÄÇøÓòÄþÏľÍÊÇcn-northwest-1

CUSTOM_CLUSTER_NAME ¾ÍÊǼ¯ÈºµÄÃû³Æ£¬¸ñʽΪ cluster.Ãû×Ö.k8s.local Èç¹û²»°´ÕÕÕâÖÖ¸ñʽÉèÖûᵼÖ Route53 host not found µÄ´íÎóŶ

ΪÁ˽«K8s²¿Ê𵽸ղŴ´½¨µÄ˽ÓÐÍøÂçÖУ¬ÐèÒªµ÷ÕûһЩÅäÖã¬ÖØÐ±༭MakefileÎļþ¡£

ÉèÖÃTARGET_REGION¿ÉÓÃÇø

ÉèÖÃKOPS_STATE_STORE s3´æ´¢

ÉèÖÃVPCID VPC ID

ÉèÖÃSSH_PUBLIC_KEYÃÜÔ¿£¬Õâ¸ö¾ÍÊǸղÅÉú³É ~/.ssh/K8sSSH.pub

Ôö¼Ó±äÁ¿SUBNET_IDS ÓÃÓڼǼ˽ÓÐ×ÓÍøµÄID£¬Õâ¸ö±äÁ¿¾Í·Å¸Õ²ÅµÃµ½µÄÈý¸ö×ÓÍøµÄID£¬Óá°,¡±¸ô¿ª¡£

Ôö¼Ó±äÁ¿CUSTOM_CLUSTER_NAMEÓÃÓÚ×Ô¶¨Ò弯ȺÃû³Æ¡£

ÐÞ¸Ä.PHONY: create-cluster£¬ÔÚÖ¸ÁîµÄ×îºóÔö¼ÓÉÏÏÂÃæ¼¸¸ö²ÎÊý

--utility-subnets=$(SUBNET_IDS) \
--api-loadbalancer-type=internal \
--subnets=$(SUBNET_IDS) \
--topology=private

×îÖÕµÄÅäÖÃÎļþÈçÏ£º

TARGET_REGION ?= cn-northwest-1
AWS_PROFILE ?= default
KOPS_STATE_STORE ?= s3://k8s-storage
VPCID ?= vpc-0761a396fcb3a9ddd
MASTER_COUNT ?= 3
MASTER_SIZE ?= m4.large
NODE_SIZE ?= c5.large
NODE_COUNT ?= 2
SSH_PUBLIC_KEY ?= ~/.ssh/K8sSSH.pub
KUBERNETES_VERSION ?= v1.13.10
KOPS_VERSION ?= 1.13.0
SUBNET_IDS ?= subnet-0efb59b551dd47dc2,
subnet-0a4fa7de20bf500ef,subnet-0ba68ae43a6d71da0
CUSTOM_CLUSTER_NAME ?= cluster.unisign.k8s.local
# Ê¡ÂÔ...
.PHONY: create-cluster
create-cluster:
@KOPS_STATE_STORE=$(KOPS_STATE_STORE) \
AWS_PROFILE=$(AWS_PROFILE) \
AWS_REGION=$(AWS_REGION) \
AWS_DEFAULT_REGION=$(AWS_DEFAULT_REGION) \
kops create cluster \
--cloud=aws \
--name=$(CLUSTER_NAME) \
--image=$(AMI) \
--zones=$(ZONES) \
--master-count=$(MASTER_COUNT) \
--master-size=$(MASTER_SIZE) \
--node-count=$(NODE_COUNT) \
--node-size=$(NODE_SIZE) \
--vpc=$(VPCID) \
--kubernetes-version=
$(KUBERNETES_VERSION_URI) \
--networking=amazon-vpc-routed-eni \
--ssh-public-key=$(SSH_PUBLIC_KEY) \
--utility-subnets=$(SUBNET_IDS) \
--api-loadbalancer-type=internal \
--subnets=$(SUBNET_IDS) \
--topology=private

¼ÌÐø°´ÕÕKops-cn README ²½Öè 4¡¢5¡¢6²Ù×÷

µÈ´ý¼¯ÈºÅäÖô´½¨Íê³É

2.2 µ÷Õû¸ºÔؾùºâÆ÷

×¢Ò⣺ ʹÓÃkopsÆô¶¯µÄkubernetesµÄapiserver ÊÇÔËÐÐÔÚ 443¶Ë¿ÚÉÏ£¬¶ø²»ÊÇ6443

ÓÉÓÚÖйúÇø 80 ºÍ 433 ¶Ë¿ÚµÄʹÓÃÊÇÐèÒª±¸°¸µÄ£¬ËùÒÔ´Ë´¦ÎÒÃÇÐèÒªµ÷Õû¸ºÔؾùºâ¶Ë¿Úµ½·Ç433£¬·ñÔòÑéÖ¤¼¯Èº»áʧ°Ü

µ½EC2Ò³ÃæÑ¡Ôñ ¸ºÔؾùºâÆ÷£¬ÕÒµ½Ãû×ÖΪapi-cluster-unisign**µÄ¸ºÔؾùºâÆ÷

±à¼­¸ºÔؾùºâµÄ¶Ë¿Ú

½« ¸ºÔؾùºâÆ÷¶Ë¿ÚÓÉ443¸ÄΪ8443

ÔÚÃèÊöÖеã»÷°²È«×éµÄ ×éÃû³Æ

Ñ¡Ôñ api-elb.cluster.** È»ºóÔڱ༭ÈëÕ¾¹æÔò

ÓÉ HTTPS¸ÄΪ ×Ô¶¨ÒåTCPµÄ8443¶Ë¿Ú

½ÓÏÂÀ´»Øµ½±¤ÀÝ»úÉÏ£¬±à¼­kubectl µÄÅäÖÃÎļþ

vi ~/.kube/config

Ð޸İ¡clusters.cluster.server£¬ÔÚĩβ¼ÓÉÏ:8443

ÑéÖ¤¼¯ÈºÓÐЧÐÔ

make validate-cluster

¿ÉÒÔ¿´µ½¼¯ÈºÒѾ­Õý³£ÔËÐС£

3. µÇ¼K8s¼¯ÈºÖеĽڵã

ÓÉÓÚK8s¼¯Èº²¿Êðµ½VPCÖеÄ˽ÓÐÍøÂ磬ûÓй«ÍøIP£¬ËùÒÔÎÒÃÇÖ»ÄÜͨ¹ýÔÚVPCÖеĹ«ÓÐ×ÓÍøÖеķþÎñÆ÷¼ä½ÓµÄÁ¬½Óµ½K8s¼¯Èº·þÎñÆ÷¡£

Òò´ËÎÒÃǼÌÐøÊ¹ÓÃÉÏÃæ´´½¨µÄ±¤ÀÝ»ú½øÐвÙ×÷

´ÓEC2¿ØÖÆÌ¨»ñÈ¡µ½Ä³¸öK8s¼¯Èº½ÚµãµÄʵÀý˽ÓÐ×ÓÍøIP£¬ÍƼöÑ¡ÔñMaster½Úµã

ʹÓù«Ô¿SSHµÇ¼µ½½ÚµãÉÏ

ssh -i ~/.ssh/K8sSSH.pem admin@10.0.201.12

Èç¹ûÌáʾÎÞȨÏÞÄÇôÇëÉèÖÃ˽ԿʹÓÃȨÏÞchmod 400 ~/.ssh/K8sSSH.pem

¿ÉÒÔ¿´µ½µÇ¼ÒѾ­³É¹¦£º

Kops-cn ËùʹÓõľµÏñÊÇ»ùÓÚdebianµÄ£¬µÇ¼µÄÓû§²»ÊÇec2-user¶øÊÇadmin

4. µ÷Õû¼¯ÈºÖеĽڵãÊýÁ¿

make edit-ig-nodes

KopsʹÓÃAutoscale×éµÄ·½Ê½À´´´½¨¼¯Èº£¬ËùÒÔ˵ÕâÀï±à¼­µÄÊǹ¤×÷½ÚµãµÄµ¯ÐÔÉìËõÉèÖá£

Èç¹ûÖ»Êǵ÷Õû»ù´¡ÊýÁ¿»ù´¡½ÚµãµÄÊýÁ¿£¬ÄÇôµ÷Õû spec.minSize¾Í¿ÉÒÔ

´Ë´¦ÎÒÃǽ«2µ÷ÕûΪ3£¬maxSize´óÓÚµÈÓÚminSize£¬ËùÒÔÒ²µ÷ÕûmaxSizeΪ3¡£

±à¼­ºÃÖ®ºó±£´æ£¬È»ºó¸üм¯Èº

make update-cluster

´Ó¿ØÖÆÌ¨ÉÏ¿ÉÒÔ¿´µ½ÒѾ­ÓÐÒ»¸öʵÀýÔÚÆô¶¯

¹ýÒ»»áÖ®ºóÎÒÃÇÑéÖ¤¼¯ÈºµÄÓÐЧ

make validate-cluster

ÔÚ³õʼ»¯Íê³ÉÖ®ºó¼¯ÈºÕý³£Æô¶¯

n. F&Q

¼¯ÈºÃ»ÓÐÆô¶¯Íê³É¾ÍÑéÖ¤

ÔÚÐÞ¸ÄÁ˸ºÔؾùºâÆ÷ºÍ°²È«×éÖ®ºóʹÓÃmake validate-cluster³öÏÖ

unexpected error during validation:
error listing nodes: Get
https://internal-api-cluster-unisign
-k8s-l-1befqc-1231872735.cn-northwest-1.elb.amazonaws.com.cn:8443/api/v1/nodes:
dial tcp: lookup internal-api-cluster
-unisign-k8s-l-1befqc-1231872735.cn
-northwest-1.elb.amazonaws.com.cn on
10.0.0.2:53: no such host
make: *** [validate-cluster] Error 1

»òÕßÊÇ

unexpected error during validation:
error listing nodes: Get https://internal
-api-cluster-unisign-k8s-l-1befqc
-1231872735.cn-northwest-1.
elb.amazonaws.com.cn
:8443/api/v1/nodes: EOF
make: *** [validate-cluster] Error 1

µÄ´íÎó£¬ÕâÊÇÒòΪ¿ØÖƽڵ㣨master£©»¹Ã»ÓÐÍê³ÉÆô¶¯£¬ËùÒÔÇëÄÍÐĵȺò¡£

 
   
2006 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí