[app][calico][kubernetes] Enable calico networking in k8s application
- binaries and scripts updated to use calico networking Co-Authored-By: ddovbii <ddovbii@mirantis.com> Change-Id: I3187b9cc171aa15caa4912a665c642ab057b4eae
This commit is contained in:
parent
d752079550
commit
b8719ff122
@ -95,6 +95,18 @@ Methods:
|
|||||||
FromPort: 7001
|
FromPort: 7001
|
||||||
IpProtocol: tcp
|
IpProtocol: tcp
|
||||||
External: false
|
External: false
|
||||||
|
- ToPort: 2379
|
||||||
|
FromPort: 2379
|
||||||
|
IpProtocol: tcp
|
||||||
|
External: false
|
||||||
|
- ToPort: 179
|
||||||
|
FromPort: 179
|
||||||
|
IpProtocol: tcp
|
||||||
|
External: false
|
||||||
|
- ToPort: 179
|
||||||
|
FromPort: 179
|
||||||
|
IpProtocol: udp
|
||||||
|
External: false
|
||||||
- ToPort: 10250
|
- ToPort: 10250
|
||||||
FromPort: 10250
|
FromPort: 10250
|
||||||
IpProtocol: tcp
|
IpProtocol: tcp
|
||||||
@ -132,12 +144,17 @@ Methods:
|
|||||||
- $.minionNodes.take($.nodeCount).select($.setupEtcd())
|
- $.minionNodes.take($.nodeCount).select($.setupEtcd())
|
||||||
- $.gatewayNodes.take($.gatewayCount).select($.setupEtcd())
|
- $.gatewayNodes.take($.gatewayCount).select($.setupEtcd())
|
||||||
|
|
||||||
|
- $.masterNode.setupFlannel()
|
||||||
- $.masterNode.setupNode()
|
- $.masterNode.setupNode()
|
||||||
|
|
||||||
- Parallel:
|
- Parallel:
|
||||||
- $.minionNodes.take($.nodeCount).pselect($.setupNode())
|
- $.minionNodes.take($.nodeCount).pselect($.setupNode())
|
||||||
- $.gatewayNodes.take($.gatewayCount).pselect($.setupNode())
|
- $.gatewayNodes.take($.gatewayCount).pselect($.setupNode())
|
||||||
|
|
||||||
|
- Parallel:
|
||||||
|
- $.minionNodes.take($.nodeCount).pselect($.setupFlannel())
|
||||||
|
- $.gatewayNodes.take($.gatewayCount).pselect($.setupFlannel())
|
||||||
|
|
||||||
- $._environment.stack.push()
|
- $._environment.stack.push()
|
||||||
- $._updateServicePublicIps()
|
- $._updateServicePublicIps()
|
||||||
- $.setAttr(lastNodeCount, $.nodeCount)
|
- $.setAttr(lastNodeCount, $.nodeCount)
|
||||||
|
@ -55,15 +55,27 @@ Methods:
|
|||||||
- $.setAttr(etcdConfigured, true)
|
- $.setAttr(etcdConfigured, true)
|
||||||
|
|
||||||
|
|
||||||
|
setupCalico:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Calico network on gateway node {0}'.format($.instance.name))
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupCalicoNode.template').bind(dict(ip => $.getIp()))
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
|
setupFlannel:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Flannel network on gateway node {0}'.format($.instance.name))
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupFlannelNode.template')
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
setupNode:
|
setupNode:
|
||||||
Body:
|
Body:
|
||||||
- If: not $.getAttr(nodeConfigured, false)
|
- If: not $.getAttr(nodeConfigured, false)
|
||||||
Then:
|
Then:
|
||||||
- $._environment.reporter.report($this, 'Setup Flannel network on {0}'.format($.instance.name))
|
|
||||||
- $resources: new(sys:Resources)
|
- $resources: new(sys:Resources)
|
||||||
- $template: $resources.yaml('SetupFlannelNode.template')
|
|
||||||
- $.instance.agent.call($template, $resources)
|
|
||||||
|
|
||||||
- $._environment.reporter.report($, 'Setup Load Balancer on {0}'.format($.instance.name))
|
- $._environment.reporter.report($, 'Setup Load Balancer on {0}'.format($.instance.name))
|
||||||
- $template: $resources.yaml('HAProxySetup.template').bind(dict(
|
- $template: $resources.yaml('HAProxySetup.template').bind(dict(
|
||||||
masterIp => $._cluster.masterNode.getIp()
|
masterIp => $._cluster.masterNode.getIp()
|
||||||
|
@ -49,15 +49,27 @@ Methods:
|
|||||||
- $.setAttr(etcdConfigured, true)
|
- $.setAttr(etcdConfigured, true)
|
||||||
|
|
||||||
|
|
||||||
|
setupCalico:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Calico network on master node')
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupCalicoMaster.template').bind(dict(ip => $.getIp()))
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
|
setupFlannel:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Flannel network on master node')
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupFlannelMaster.template')
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
setupNode:
|
setupNode:
|
||||||
Body:
|
Body:
|
||||||
- If: not $.getAttr(nodeConfigured, false)
|
- If: not $.getAttr(nodeConfigured, false)
|
||||||
Then:
|
Then:
|
||||||
- $resources: new(sys:Resources)
|
- $resources: new(sys:Resources)
|
||||||
- $._environment.reporter.report($this, 'Setup Flannel network on master node')
|
|
||||||
- $template: $resources.yaml('SetupFlannelMaster.template')
|
|
||||||
- $.instance.agent.call($template, $resources)
|
|
||||||
|
|
||||||
- $._environment.reporter.report($this, 'Setup Kubernetes API host')
|
- $._environment.reporter.report($this, 'Setup Kubernetes API host')
|
||||||
- $resources: new(sys:Resources)
|
- $resources: new(sys:Resources)
|
||||||
- $template: $resources.yaml('KubeMasterSetup.template').bind(dict(
|
- $template: $resources.yaml('KubeMasterSetup.template').bind(dict(
|
||||||
|
@ -63,15 +63,27 @@ Methods:
|
|||||||
- $.setAttr(etcdConfigured, true)
|
- $.setAttr(etcdConfigured, true)
|
||||||
|
|
||||||
|
|
||||||
|
setupCalico:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Calico network on node {0}'.format($.instance.name))
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupCalicoNode.template').bind(dict(ip => $.getIp()))
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
|
setupFlannel:
|
||||||
|
Body:
|
||||||
|
- $._environment.reporter.report($this, 'Setup Flannel network on node {0}'.format($.instance.name))
|
||||||
|
- $resources: new(sys:Resources)
|
||||||
|
- $template: $resources.yaml('SetupFlannelNode.template')
|
||||||
|
- $.instance.agent.call($template, $resources)
|
||||||
|
|
||||||
|
|
||||||
setupNode:
|
setupNode:
|
||||||
Body:
|
Body:
|
||||||
- If: not $.getAttr(nodeConfigured, false)
|
- If: not $.getAttr(nodeConfigured, false)
|
||||||
Then:
|
Then:
|
||||||
- $._environment.reporter.report($this, 'Setup Flannel network on {0}'.format($.instance.name))
|
|
||||||
- $resources: new(sys:Resources)
|
- $resources: new(sys:Resources)
|
||||||
- $template: $resources.yaml('SetupFlannelNode.template')
|
|
||||||
- $.instance.agent.call($template, $resources)
|
|
||||||
|
|
||||||
- $securityGroupIngress:
|
- $securityGroupIngress:
|
||||||
- ToPort: 4194
|
- ToPort: 4194
|
||||||
FromPort: 4194
|
FromPort: 4194
|
||||||
|
@ -44,6 +44,8 @@ Methods:
|
|||||||
- $.instance.deploy()
|
- $.instance.deploy()
|
||||||
|
|
||||||
|
|
||||||
|
setupFlannel:
|
||||||
|
setupCalico:
|
||||||
setupEtcd:
|
setupEtcd:
|
||||||
setupNode:
|
setupNode:
|
||||||
removeFromCluster:
|
removeFromCluster:
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
FormatVersion: 2.0.0
|
||||||
|
Version: 1.0.0
|
||||||
|
Name: Setup Calico on Master
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
ip: $ip
|
||||||
|
|
||||||
|
Body: |
|
||||||
|
return setupCalico('{0}'.format(args.ip)).stdout
|
||||||
|
|
||||||
|
Scripts:
|
||||||
|
setupCalico:
|
||||||
|
Type: Application
|
||||||
|
Version: 1.0.0
|
||||||
|
EntryPoint: setupCalicoMaster.sh
|
||||||
|
Files:
|
||||||
|
- systemd/calico-node.service
|
||||||
|
- environ/network-environment
|
||||||
|
Options:
|
||||||
|
captureStdout: true
|
||||||
|
captureStderr: true
|
@ -0,0 +1,34 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
FormatVersion: 2.0.0
|
||||||
|
Version: 1.0.0
|
||||||
|
Name: Setup Calico on Node
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
ip: $ip
|
||||||
|
|
||||||
|
Body: |
|
||||||
|
return setupCalico('{0}'.format(args.ip)).stdout
|
||||||
|
|
||||||
|
Scripts:
|
||||||
|
setupCalico:
|
||||||
|
Type: Application
|
||||||
|
Version: 1.0.0
|
||||||
|
EntryPoint: setupCalicoNode.sh
|
||||||
|
Files:
|
||||||
|
- systemd/calico-node.service
|
||||||
|
- environ/network-environment
|
||||||
|
- 10-calico.conf
|
||||||
|
Options:
|
||||||
|
captureStdout: true
|
||||||
|
captureStderr: true
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "calico-k8s-network",
|
||||||
|
"type": "calico",
|
||||||
|
"etcd_authority": "%%MASTER_IP%%:2379",
|
||||||
|
"log_level": "info",
|
||||||
|
"ipam": {
|
||||||
|
"type": "calico-ipam"
|
||||||
|
}
|
||||||
|
}
|
@ -4,9 +4,9 @@
|
|||||||
|
|
||||||
NAME="-name %%NAME%%"
|
NAME="-name %%NAME%%"
|
||||||
LISTEN_PEER_URLS="-listen-peer-urls http://%%IP%%:7001,http://127.0.0.1:7001"
|
LISTEN_PEER_URLS="-listen-peer-urls http://%%IP%%:7001,http://127.0.0.1:7001"
|
||||||
LISTEN_CLIENT_URLS="-listen-client-urls http://%%IP%%:4001,http://127.0.0.1:4001"
|
LISTEN_CLIENT_URLS="-listen-client-urls http://%%IP%%:4001,http://127.0.0.1:4001,http://%%IP%%:2379,http://127.0.0.1:2379"
|
||||||
INITIAL_ADV_PEER_URLS="-initial-advertise-peer-urls http://%%IP%%:7001"
|
INITIAL_ADV_PEER_URLS="-initial-advertise-peer-urls http://%%IP%%:7001"
|
||||||
INITIAL_CLUSTER_STATE="-initial-cluster-state %%STATE%%"
|
INITIAL_CLUSTER_STATE="-initial-cluster-state %%STATE%%"
|
||||||
INITIAL_CLUSTER="-initial-cluster %%CLUSTER_CONFIG%%"
|
INITIAL_CLUSTER="-initial-cluster %%CLUSTER_CONFIG%%"
|
||||||
ADV_CLIENT_URLS="-advertise-client-urls http://%%IP%%:4001,http://127.0.0.1:4001"
|
ADV_CLIENT_URLS="-advertise-client-urls http://%%IP%%:4001,http://127.0.0.1:4001,http://%%IP%%:2379,http://127.0.0.1:2379"
|
||||||
ETCD_OPTS="-snapshot-count 1000"
|
ETCD_OPTS="-snapshot-count 1000"
|
||||||
|
@ -13,5 +13,3 @@ KUBELET_HOSTNAME="--hostname-override=%%IP%%"
|
|||||||
# location of the api-server
|
# location of the api-server
|
||||||
KUBELET_API_SERVER="--api-servers=http://%%MASTER_IP%%:8080"
|
KUBELET_API_SERVER="--api-servers=http://%%MASTER_IP%%:8080"
|
||||||
|
|
||||||
# Add your own!
|
|
||||||
KUBELET_ARGS=""
|
|
@ -0,0 +1,6 @@
|
|||||||
|
# This host's IPv4 address (the source IP address used to reach other nodes
|
||||||
|
# in the Kubernetes cluster).
|
||||||
|
DEFAULT_IPV4=%%IP%%
|
||||||
|
|
||||||
|
# IP and port of etcd instance used by Calico
|
||||||
|
ETCD_AUTHORITY=%%MASTER_IP%%:2379
|
@ -61,6 +61,8 @@ else
|
|||||||
service kube-controller-manager start
|
service kube-controller-manager start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ln -s /opt/bin/hyperkube /opt/bin/kubectl
|
||||||
|
|
||||||
mkdir /var/log/kubernetes
|
mkdir /var/log/kubernetes
|
||||||
/opt/bin/kubectl delete node 127.0.0.1
|
/opt/bin/kubectl delete node 127.0.0.1
|
||||||
sleep 1
|
sleep 1
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 - IP
|
||||||
|
|
||||||
|
# TODO(asilenlov): we need to refactor this script
|
||||||
|
|
||||||
|
# Install Calico on master
|
||||||
|
mkdir -p /opt/cni/bin
|
||||||
|
cp /opt/copy/cni/bin/* /opt/cni/bin/
|
||||||
|
ln -s /opt/bin/calicoctl /usr/bin/calicoctl
|
||||||
|
docker load < /opt/copy/calico-node.tar
|
||||||
|
|
||||||
|
sed -i.bak "s/%%MASTER_IP%%/$1/g" environ/network-environment
|
||||||
|
sed -i.bak "s/%%IP%%/$1/g" environ/network-environment
|
||||||
|
cp -f environ/network-environment /etc
|
||||||
|
|
||||||
|
sed -i.bak "s/%%IP%%/$1/g" systemd/calico-node.service
|
||||||
|
cp -f systemd/calico-node.service /etc/systemd/system/
|
||||||
|
systemctl enable calico-node.service
|
||||||
|
|
||||||
|
systemctl start calico-node
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# $1 - IP
|
||||||
|
|
||||||
|
# TODO(asilenlov): we need to refactor this script
|
||||||
|
|
||||||
|
# Install Calico on worker
|
||||||
|
mkdir -p /opt/cni/bin
|
||||||
|
cp /opt/copy/cni/bin/* /opt/cni/bin/
|
||||||
|
ln -s /opt/bin/calicoctl /usr/bin/calicoctl
|
||||||
|
docker load < /opt/copy/calico-node.tar
|
||||||
|
|
||||||
|
sed -i.bak "s/%%MASTER_IP%%/$1/g" environ/network-environment
|
||||||
|
sed -i.bak "s/%%IP%%/$1/g" environ/network-environment
|
||||||
|
cp -f environ/network-environment /etc
|
||||||
|
|
||||||
|
sed -i.bak "s/%%IP%%/$1/g" systemd/calico-node.service
|
||||||
|
cp -f systemd/calico-node.service /etc/systemd/system/
|
||||||
|
systemctl enable calico-node.service
|
||||||
|
|
||||||
|
mkdir -p /etc/cni/net.d
|
||||||
|
sed -i.bak "s/%%MASTER_IP%%/$1/g" 10-calico.conf
|
||||||
|
cp -f 10-calico.conf /etc/cni/net.d
|
||||||
|
|
||||||
|
systemctl start calico-node
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
count=30
|
count=30
|
||||||
|
|
||||||
echo "Adding flannel configuration to etcd"
|
echo "Adding flannel configuration to etcd"
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Calico per-node agent
|
||||||
|
Documentation=https://github.com/projectcalico/calico-docker
|
||||||
|
Requires=docker.service
|
||||||
|
After=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
EnvironmentFile=/etc/network-environment
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
ExecStart=/usr/bin/calicoctl node --ip=%%IP%% --detach=false
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
x
Reference in New Issue
Block a user