K8s安装-网络插件和加入node节点(三)

初始化成功集群后,我们需要安装网络pod到集群中。这里使用是Calico。

安装Calico

只需在master节点执行安装。

安装Tigera Calico operator

命令如下

kubectl create -f tigera-operator.yaml

tigera-operator.yaml连接下载:tigera-operator下载https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/tigera-operator.yaml

Calico安装

kubectl create -f custom-resources.yaml

根据需要修改参数cidr来匹配你设置pod网络cidr,custom-resources.yaml内容如下

# This section includes base Calico installation configuration.
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    # Note: The ipPools section cannot be modified post-install.
    ipPools:
    - blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

---

# This section configures the Calico API server.
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer
apiVersion: operator.tigera.io/v1
kind: APIServer 
metadata: 
  name: default 
spec: {}

检查Calico相关的pod

watch kubectl get pods -n calico-system

检查所有的pod是否处于running状态

加入节点

加入节点命令格式

kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>

可以参考kubeadm init初始化输出的日志,如下

kubeadm join 192.168.24.135:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:97056c4a02872fb494889e53c74e9f0c559c137545a97662ec1bac5a256736a0 

如果没有令牌,可以通过在控制平面节点上运行以下命令来获取令牌:

kubeadm token list

默认情况下,令牌会在 24 小时后过期。如果要在当前令牌过期后将节点加入集群, 则可以通过在控制平面节点上运行以下命令来创建新令牌

kubeadm token create

如果你没有 --discovery-token-ca-cert-hash 的值,则可以通过在控制平面节点上执行以下命令链来获取它

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
   openssl dgst -sha256 -hex | sed 's/^.* //'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装Flannel网络插件需要以下步骤: 1. 在所有节点安装flannel二进制文件: ```bash $ wget https://github.com/coreos/flannel/releases/download/v0.13.0/flannel-v0.13.0-linux-amd64.tar.gz $ tar -xvf flannel-v0.13.0-linux-amd64.tar.gz $ cd flannel-v0.13.0-linux-amd64 $ sudo cp flanneld /usr/local/bin/ $ sudo cp mk-docker-opts.sh /usr/local/bin/ ``` 2. 创建flannel配置文件 `/etc/kubernetes/cni/net.d/10-flannel.conf`: ```bash { "cniVersion": "0.3.1", "name": "flannel", "type": "flannel", "delegate": { "isDefaultGateway": true } } ``` 3. 在所有节点上启动flannel服务: ```bash $ sudo systemctl start flanneld ``` 4. 验证flannel是否运行正常: ```bash $ sudo systemctl status flanneld ``` 5. 在Master节点上检查kubelet配置文件 `/etc/kubernetes/kubelet.conf`是否包含以下内容: ```yaml apiVersion: v1 clusters: - cluster: certificate-authority: /etc/kubernetes/pki/ca.crt server: https://127.0.0.1:6443 name: kubernetes contexts: - context: cluster: kubernetes user: system:node:<node-name> name: default current-context: default kind: Config preferences: {} users: - name: system:node:<node-name> user: client-certificate: /etc/kubernetes/pki/apiserver-kubelet-client.crt client-key: /etc/kubernetes/pki/apiserver-kubelet-client.key ``` 6. 在Master节点上创建kube-flannel.yml文件: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: kube-flannel-cfg namespace: kube-system labels: tier: node app: flannel data: cni-conf.json: | { "name": "cbr0", "cniVersion": "0.3.1", "plugins": [ { "type": "flannel", "delegate": { "isDefaultGateway": true } }, { "type": "portmap", "capabilities": { "portMappings": true } } ] } net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: kube-flannel-ds namespace: kube-system labels: tier: node app: flannel spec: updateStrategy: type: RollingUpdate selector: matchLabels: tier: node app: flannel template: metadata: labels: tier: node app: flannel spec: hostNetwork: true containers: - name: kube-flannel image: quay.io/coreos/flannel:v0.13.0-rc2 command: - /opt/bin/flanneld args: - --ip-masq - --kube-subnet-mgr - --iface=$(POD_IP) env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP securityContext: privileged: true volumeMounts: - name: flannel-cfg mountPath: /etc/kube-flannel/ volumes: - name: flannel-cfg configMap: name: kube-flannel-cfg - name: run hostPath: path: /run type: "" ``` 7. 在Master节点上应用kube-flannel.yml: ```bash $ kubectl apply -f kube-flannel.yml ``` 8. 检查所有节点上的flannel是否运行正常: ```bash $ kubectl get pods -n kube-system ``` 如果所有节点上的flannel状态都是Running,则表示flannel网络插件安装成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值