k8s二进制安装apiserver安装
开始是一个master,两个node节点,后面再扩。
使用centos7系统,前面文章已经安装过etcd。下载k8s组件包
wget https://dl.k8s.io/v1.21.10/kubernetes-server-linux-amd64.tar.gz
tar -zxf kubernetes-server-linux-amd64.tar.gz
cd kubernetes/server/bin/
cp kube-apiserver kubectl kube-controller-manager kube-scheduler /usr/local/bin
scp kubelet kube-proxy FNSHB109:/usr/local/bin
scp kubelet kube-proxy node1:/usr/local/bin
scp kubelet kube-proxy node2:/usr/local/bin
mkdir -p /etc/kubernetes
mkdir -p /etc/kubernetes/ssl
mkdir -p /var/log/kubernetesk8s集群证书配置
一个应用程序访问https API(自签证书),有两种方式,证书添加IP可信任(写在证书的json的host文件里面)和携带CA证书。ca证书在etcd那篇文章里面已经配置过,这里直接配置kube-apiserver-csr.json请求文件,再利用ca证书和私钥,形成kube-apiserver证书。cd /root/k8sbinary/TLS/k8s [root@FNSHB109 k8s]# cat kube-apiserver-csr.json { "CN": "kubernetes", "hosts": [ "10.0.0.1", "127.0.0.1", "135.251.205.109", "135.251.206.138", "135.251.206.137", "135.251.205.75", "135.251.205.73", "135.251.205.76", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster", "kubernetes.default.svc.cluster.local" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing", "O": "k8s", "OU": "System" } ] }
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-apiserver-csr.json | cfssljson -bare kube-apiserver
随机生成序列号,并定义token.csvcat > token.csv << EOF $(head -c 16 /dev/urandom | od -An -t x | tr -d " "),kubelet-bootstrap,10001,"system:kubelet-bootstrap" EOF
kubelet 采用 TLS Bootstrapping 机制,自动完成到 kube-apiserver 的注册,在 node 节点量较大或者后期自动扩容时非常有用。
Master apiserver 启用 TLS 认证后,node 节点 kubelet 组件想要加入集群,必须使用CA签发的有效证书才能与 apiserver 通信,当 node 节点很多时,签署证书是一件很繁琐的事情。因此 Kubernetes 引入了 TLS bootstraping 机制来自动颁发客户端证书,kubelet 会以一个低权限用户自动向 apiserver 申请证书,kubelet 的证书由 apiserver 动态签署。
kubelet 首次启动通过加载 bootstrap.kubeconfig 中的用户 Token 和 apiserver CA 证书发起首次 CSR 请求,这个 Token 被预先内置在 apiserver 节点的 token.csv 中,其身份为 kubelet-bootstrap 用户和 system:kubelet-bootstrap 用户组;想要首次 CSR 请求能成功(即不会被 apiserver 401 拒绝),则需要先创建一个 ClusterRoleBinding,将 kubelet-bootstrap 用户和 system:node-bootstrapper 内置 ClusterRole 绑定(通过 kubectl get clusterroles 可查询),使其能够发起 CSR 认证请求。
TLS bootstrapping 时的证书实际是由 kube-controller-manager 组件来签署的,也就是说证书有效期是 kube-controller-manager 组件控制的;kube-controller-manager 组件提供了一个 --experimental-cluster-signing-duration 参数来设置签署的证书有效时间;默认为 8760h0m0s,将其改为 87600h0m0s,即 10 年后再进行 TLS bootstrapping 签署证书即可。
也就是说 kubelet 首次访问 API Server 时,是使用 token 做认证,通过后,Controller Manager 会为 kubelet 生成一个证书,以后的访问都是用证书做认证了。
生成kube-apiserver的配置文件和启动文件
cd /root/k8sbinary/TLS/k8s
cp /root/k8sbinary/TLS/k8s/token.csv /etc/kubernetes/ssl
cp /root/k8sbinary/TLS/k8s/ca*.pem /etc/kubernetes/ssl
cp /root/k8sbinary/TLS/k8s/kube-api*.pem /etc/kubernetes/ssl
scp ca*.pem node1:/etc/kubernetes/ssl
scp ca*.pem node2:/etc/kubernetes/ssl
scp /root/k8sbinary/TLS/k8s/token.csv node1:/etc/kubernetes/ssl
scp /root/k8sbinary/TLS/k8s/token.csv node1:/etc/kubernetes/ssl
cat > /etc/kubernetes/kube-apiserver.conf << EOF KUBE_APISERVER_OPTS="--enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota --anonymous-auth=false --bind-address=135.251.205.109 --secure-port=6443 --advertise-address=135.251.205.109 --authorization-mode=Node,RBAC --runtime-config=api/all=true --enable-bootstrap-token-auth --service-cluster-ip-range=10.96.0.0/16 --token-auth-file=/etc/kubernetes/ssl/token.csv --service-node-port-range=30000-32767 --tls-cert-file=/etc/kubernetes/ssl/kube-apiserver.pem --tls-private-key-file=/etc/kubernetes/ssl/kube-apiserver-key.pem --client-ca-file=/etc/kubernetes/ssl/ca.pem --kubelet-client-certificate=/etc/kubernetes/ssl/kube-apiserver.pem --kubelet-client-key=/etc/kubernetes/ssl/kube-apiserver-key.pem --service-account-key-file=/etc/kubernetes/ssl/ca-key.pem --service-account-signing-key-file=/etc/kubernetes/ssl/ca-key.pem --service-account-issuer=api --etcd-cafile=/etc/etcd/ssl/ca.pem --etcd-certfile=/etc/etcd/ssl/etcd.pem --etcd-keyfile=/etc/etcd/ssl/etcd-key.pem --etcd-servers=https://135.251.205.109:2379,https://135.251.206.138:2379,https://135.251.206.137:2379 --enable-swagger-ui=true --allow-privileged=true --apiserver-count=1 --audit-log-maxage=30 --audit-log-maxbackup=3 --audit-log-maxsize=100 --audit-log-path=/var/log/kube-apiserver-audit.log --event-ttl=1h --alsologtostderr=true --logtostderr=false --log-dir=/var/log/kubernetes --v=4" EOF cat > /etc/systemd/system/kube-apiserver.service << EOF [Unit] Description=Kubernetes API Server Documentation=https://github.com/kubernetes/kubernetes After=etcd.service Wants=etcd.service [Service] EnvironmentFile=/etc/kubernetes/kube-apiserver.conf ExecStart=/usr/local/bin/kube-apiserver $KUBE_APISERVER_OPTS Restart=on-failure Type=notify LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload
systemctl enable kube-apiserver
systemctl start kube-apiserver
systemctl status kube-apiserver[root@FNSHB109 k8s]# systemctl status kube-apiserver kube-apiserver.service - Kubernetes API Server Loaded: loaded (/etc/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled) Active: active (running) since 四 2022-05-12 13:36:24 CST; 6h ago Docs: https://github.com/kubernetes/kubernetes Main PID: 29736 (kube-apiserver) Tasks: 44 Memory: 381.4M CGroup: /system.slice/kube-apiserver.service
如何搞定只问不买的客户无论是线上还是线下销售,这一套话术技巧一定要收藏,不然聊一个嗝屁一个。一顾客问怎么卖错误回答直接报价(谁先报价谁先死)千万不要着急去报价。要先让顾客充分了解产品的价值。巧妙回避价格
警惕无良商家被曝拖欠运费随着运费飙升,海外不确定性因素的突增,货代物流业进入风险高发期。今年以来,货代资金断裂破产的事情屡有发生。近日,深圳货代圈连续曝出3起货代失信事件。其中有实名举报深圳某货代扣单敲诈
梅雨季的钢琴防潮计划,收藏这篇就够了黄梅时节家家雨,青草池塘处处蛙。诗人描绘的场景虽然别有一番意境,可是对于大多数人来说,一定期待着赶快度过潮湿闷热的梅雨季节吧?其实,你家钢琴也是这么想的在这湿漉漉的一个多月里,不仅
精美之作CarlJohann钢琴,恪守追求卓越的品质承诺CarlJohann(卡尔约翰)钢琴系列是德国SAUTER钢琴的家族品牌之一,为致敬SAUTER家族百年传承而生,以SAUTER家族六代人始终追求的制琴理念,设计并制作每一台Car
令人奢想的巴洛克魅力SAUTERBarock122立式钢琴巴洛克一词源于葡萄牙语barroco,译为残缺变形的珍珠(barroco)。作为形容词,表达了俗丽凌乱之意。虽然欧洲人最初用这个词意指缺乏古典主义均衡特性的作品,但其实巴洛克艺术家
今天给大家分享销售技巧如何搞定只问不买的顾客无论是线上还是线下销售,这一套话术技巧一定要收藏,不然聊一个嗝屁一个。一顾客说太贵了错误回答价格好商量我们是全国统一价价格,不是我决定的我给你优惠点正确回答亲爱的,我完全理解你,很
外贸单证的十问十答01hr信用证要求提供LANDSEACOMBINEDTRANSPORTBL但又规定不可转运,货从内地装火车到香港装海,与不可转运有矛盾,以上条款是否需要联系客户修改?不需要。UCP
九大外贸跟单技巧订单的成交95是通过外贸业务努力跟进订单从而促成的,所以外贸跟单技巧往往能够决定一个订单能否成交。今天要和大家一起分享的是九大外贸跟单技巧。1。分析客户分析客户是指分析客户的采购产
限电减产何以解忧?唯有涨价有外贸人说何以解忧,唯有涨价!我们可以尝试从歪果仁你们要环保,好的我们环保了为了做到环保,我们不得不涨价这个角度出发(当然英文话术会更加合理委婉),开启我们的涨价或逼单。针对以下三
如何让聊崩的客户起死回生xx报价仅在xx生效,如果原材料波动在某一范围内,你自己承担,超过多少,客户和你各承担50。有这个约束条件在,至少客户心里的预期是可以掌控的。亡羊补牢的办法,有几个方向1)分析加共
性价比之选!AustrianAudioHiX15专业头戴耳机发布高超的性价比HiX15耳机现已加入了我们屡获殊荣的专业级耳机阵容。他具有非常高的性价比。耳机同样能为录音师和音乐家提供广受赞誉的水晶般的清晰准确的,源自AustrianAudioH