K8S从入门到放弃系列-(11)kubernetes集群网络Calico部署

摘要:
前面几个篇幅,已经介绍master与node节点集群组件部署,由于K8S本身不支持网络,当 node 全部启动后,由于网络组件(CNI)未安装会显示为 NotReady 状态,需要借助第三方网络才能进行创建Pod,下面将部署 Calico 网络为K8S提供网络支持,完成跨节点网络通讯。
官方文档 https://docs.projectcalico.org/v3.6/introduction
1)下载Calico yaml

[root@k8s-master01 ~]# mkdir /opt/k8s/calico
[root@k8s-master01 ~]# cd /opt/k8s/calico/
[root@k8s-master01 calico]# wget http://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/calico.yaml
2)修改配置
默认calico配置清单文件与我们部署的集群并不兼容,所以我们需要修改以下字段信息
[root@k8s-master01 calico]# vim calico.yaml 
## etcd 证书 base64 地址 (执行里面的命令生成的证书 base64 码,填入里面)
apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: calico-etcd-secrets
  namespace: kube-system
data:
   etcd-key: (cat /etc/kubernetes/ssl/etcd-key.pem | base64 | tr -d '
')
   etcd-cert: (cat /etc/kubernetes/ssl/etcd.pem | base64 | tr -d '
')
   etcd-ca: (cat /etc/kubernetes/ssl/ca.pem | base64 | tr -d '
')
  
## 如上()中只是生成base64码的命令实际操作时需要去掉(),只需要填写生成的编码并用双引号引起来即可


## ConfigMap 
### 修改etcd地址
  etcd_endpoints: "https://10.10.0.18:2379,https://10.10.0.19:2379,https://10.10.0.20:2379"
### 修改etcd证书位置
  etcd_ca: "/calico-secrets/etcd-ca"
  etcd_cert: "/calico-secrets/etcd-cert"
  etcd_key: "/calico-secrets/etcd-key"
## 修改pod 分配的IP段(不能与node、service等地址同一网段)
  - name: CALICO_IPV4POOL_CIDR
    value: "10.254.64.0/18"
3)应用

[root@k8s-master01 calico]# kubectl apply -f calico.yaml 
4)查看

[root@k8s-master01 ~]# kubectl get po -n kube-system -o wide
NAME                                       READY   STATUS    RESTARTS   AGE   IP           NODE         NOMINATED NODE   READINESS GATES
calico-kube-controllers-75569d87d7-lxmgq   1/1     Running   0          70s   10.10.0.22   k8s-node02   <none>           <none>
calico-node-lhmt8                          1/1     Running   0          70s   10.10.0.22   k8s-node02   <none>           <none>
calico-node-nkmh2                          1/1     Running   0          70s   10.10.0.21   k8s-node01   <none>           <none>
5)验证集群状态

## 查看node是否为就绪状态
[root@k8s-master01 ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-node01   Ready      <none>   19h   v1.14.1
k8s-node02   Ready      <none>   18h   v1.14.1

原文地址:https://www.cnblogs.com/tchua/p/10773269.html