You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/setup/production-environment/tools/kops.md
+18-8Lines changed: 18 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -14,17 +14,23 @@ It uses a tool called [`kOps`](https://github.com/kubernetes/kops).
14
14
* Fully automated installation
15
15
* Uses DNS to identify clusters
16
16
* Self-healing: everything runs in Auto-Scaling Groups
17
-
* Multiple OS support (Amazon Linux, Debian, Flatcar, RHEL, Rocky and Ubuntu) - see the [images.md](https://github.com/kubernetes/kops/blob/master/docs/operations/images.md)
18
-
* High-Availability support - see the [high_availability.md](https://github.com/kubernetes/kops/blob/master/docs/operations/high_availability.md)
19
-
* Can directly provision, or generate terraform manifests - see the [terraform.md](https://github.com/kubernetes/kops/blob/master/docs/terraform.md)
17
+
* Multiple OS support (Amazon Linux, Debian, Flatcar, RHEL, Rocky and Ubuntu) - see the
* You must have [kubectl](/docs/tasks/tools/) installed.
24
27
25
28
* You must [install](https://github.com/kubernetes/kops#installing)`kops` on a 64-bit (AMD64 and Intel 64) device architecture.
26
29
27
-
* You must have an [AWS account](https://docs.aws.amazon.com/polly/latest/dg/setting-up.html), generate [IAM keys](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) and [configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) them. The IAM user will need [adequate permissions](https://github.com/kubernetes/kops/blob/master/docs/getting_started/aws.md#setup-iam-user).
30
+
* You must have an [AWS account](https://docs.aws.amazon.com/polly/latest/dg/setting-up.html),
and [configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) them.
33
+
The IAM user will need [adequate permissions](https://github.com/kubernetes/kops/blob/master/docs/getting_started/aws.md#setup-iam-user).
28
34
29
35
30
36
@@ -34,7 +40,8 @@ It uses a tool called [`kOps`](https://github.com/kubernetes/kops).
34
40
35
41
#### Installation
36
42
37
-
Download kops from the [releases page](https://github.com/kubernetes/kops/releases) (it is also convenient to build from source):
43
+
Download kops from the [releases page](https://github.com/kubernetes/kops/releases)
44
+
(it is also convenient to build from source):
38
45
39
46
{{< tabs name="kops_installation" >}}
40
47
{{% tab name="macOS" %}}
@@ -212,7 +219,8 @@ for production clusters!
212
219
213
220
### Explore other add-ons
214
221
215
-
See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to explore other add-ons, including tools for logging, monitoring, network policy, visualization, and control of your Kubernetes cluster.
222
+
See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to explore other add-ons,
223
+
including tools for logging, monitoring, network policy, visualization, and control of your Kubernetes cluster.
216
224
217
225
## Cleanup
218
226
@@ -221,6 +229,8 @@ See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to expl
221
229
## {{% heading "whatsnext" %}}
222
230
223
231
* Learn more about Kubernetes [concepts](/docs/concepts/) and [`kubectl`](/docs/reference/kubectl/).
224
-
* Learn more about `kOps`[advanced usage](https://kops.sigs.k8s.io/) for tutorials, best practices and advanced configuration options.
225
-
* Follow `kOps` community discussions on Slack: [community discussions](https://github.com/kubernetes/kops#other-ways-to-communicate-with-the-contributors).
232
+
* Learn more about `kOps`[advanced usage](https://kops.sigs.k8s.io/) for tutorials,
233
+
best practices and advanced configuration options.
Your Kubernetes cluster includes [dual-stack](/docs/concepts/services-networking/dual-stack/) networking, which means that cluster networking lets you use either address family. In a cluster, the control plane can assign both an IPv4 address and an IPv6 address to a single {{< glossary_tooltip text="Pod" term_id="pod" >}} or a {{< glossary_tooltip text="Service" term_id="service" >}}.
12
+
Your Kubernetes cluster includes [dual-stack](/docs/concepts/services-networking/dual-stack/)
13
+
networking, which means that cluster networking lets you use either address family.
14
+
In a cluster, the control plane can assign both an IPv4 address and an IPv6 address to a single
15
+
{{< glossary_tooltip text="Pod" term_id="pod" >}} or a {{< glossary_tooltip text="Service" term_id="service" >}}.
13
16
14
17
15
18
16
19
## {{% heading "prerequisites" %}}
17
20
18
-
You need to have installed the {{< glossary_tooltip text="kubeadm" term_id="kubeadm" >}} tool, following the steps from [Installing kubeadm](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/).
21
+
You need to have installed the {{< glossary_tooltip text="kubeadm" term_id="kubeadm" >}} tool,
22
+
following the steps from [Installing kubeadm](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/).
19
23
20
-
For each server that you want to use as a {{< glossary_tooltip text="node" term_id="node" >}}, make sure it allows IPv6 forwarding. On Linux, you can set this by running run `sysctl -w net.ipv6.conf.all.forwarding=1` as the root user on each server.
24
+
For each server that you want to use as a {{< glossary_tooltip text="node" term_id="node" >}},
25
+
make sure it allows IPv6 forwarding. On Linux, you can set this by running run
26
+
`sysctl -w net.ipv6.conf.all.forwarding=1` as the root user on each server.
21
27
22
28
You need to have an IPv4 and and IPv6 address range to use. Cluster operators typically
23
29
use private address ranges for IPv4. For IPv6, a cluster operator typically chooses a global
@@ -65,15 +71,18 @@ nodeRegistration:
65
71
node-ip: 10.100.0.2,fd00:1:2:3::2
66
72
```
67
73
68
-
`advertiseAddress` in InitConfiguration specifies the IP address that the API Server will advertise it is listening on. The value of `advertiseAddress` equals the `--apiserver-advertise-address` flag of `kubeadm init`
74
+
`advertiseAddress` in InitConfiguration specifies the IP address that the API Server
75
+
will advertise it is listening on. The value of `advertiseAddress` equals the
76
+
`--apiserver-advertise-address`flag of `kubeadm init`.
69
77
70
78
Run kubeadm to initiate the dual-stack control plane node:
71
79
72
80
```shell
73
81
kubeadm init --config=kubeadm-config.yaml
74
82
```
75
83
76
-
The kube-controller-manager flags `--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6` are set with default values. See [configure IPv4/IPv6 dual stack](/docs/concepts/services-networking/dual-stack#configure-ipv4-ipv6-dual-stack).
84
+
The kube-controller-manager flags `--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6`
85
+
are set with default values. See [configure IPv4/IPv6 dual stack](/docs/concepts/services-networking/dual-stack#configure-ipv4-ipv6-dual-stack).
77
86
78
87
{{< note >}}
79
88
The `--apiserver-advertise-address` flag does not support dual-stack.
@@ -124,7 +133,9 @@ nodeRegistration:
124
133
125
134
```
126
135
127
-
`advertiseAddress`in JoinConfiguration.controlPlane specifies the IP address that the API Server will advertise it is listening on. The value of `advertiseAddress` equals the `--apiserver-advertise-address` flag of `kubeadm join`.
136
+
`advertiseAddress`in JoinConfiguration.controlPlane specifies the IP address that the
137
+
API Server will advertise it is listening on. The value of `advertiseAddress` equals
138
+
the `--apiserver-advertise-address` flag of `kubeadm join`.
Copy file name to clipboardExpand all lines: content/en/docs/setup/production-environment/tools/kubespray.md
+42-15Lines changed: 42 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,16 @@ weight: 30
6
6
7
7
8
8
9
-
This quickstart helps to install a Kubernetes cluster hosted on GCE, Azure, OpenStack, AWS, vSphere, Equinix Metal (formerly Packet), Oracle Cloud Infrastructure (Experimental) or Baremetal with [Kubespray](https://github.com/kubernetes-sigs/kubespray).
9
+
This quickstart helps to install a Kubernetes cluster hosted on GCE, Azure, OpenStack,
10
+
AWS, vSphere, Equinix Metal (formerly Packet), Oracle Cloud Infrastructure (Experimental)
11
+
or Baremetal with [Kubespray](https://github.com/kubernetes-sigs/kubespray).
10
12
11
-
Kubespray is a composition of [Ansible](https://docs.ansible.com/) playbooks, [inventory](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/ansible.md#inventory), provisioning tools, and domain knowledge for generic OS/Kubernetes clusters configuration management tasks.
13
+
Kubespray is a composition of [Ansible](https://docs.ansible.com/) playbooks,
provisioning tools, and domain knowledge for generic OS/Kubernetes clusters configuration management tasks.
12
16
13
17
Kubespray provides:
18
+
14
19
* Highly available cluster.
15
20
* Composable (Choice of the network plugin for instance).
16
21
* Supports most popular Linux distributions:
@@ -28,7 +33,8 @@ Kubespray provides:
28
33
- Amazon Linux 2
29
34
* Continuous integration tests.
30
35
31
-
To choose a tool which best fits your use case, read [this comparison](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/comparisons.md) to
36
+
To choose a tool which best fits your use case, read
37
+
[this comparison](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/comparisons.md) to
32
38
[kubeadm](/docs/reference/setup-tools/kubeadm/) and [kops](/docs/setup/production-environment/tools/kops/).
33
39
34
40
@@ -44,8 +50,11 @@ Provision servers with the following [requirements](https://github.com/kubernete
44
50
* The target servers must have **access to the Internet** in order to pull docker images. Otherwise, additional configuration is required See ([Offline Environment](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/offline-environment.md))
45
51
* The target servers are configured to allow **IPv4 forwarding**.
46
52
* If using IPv6 for pods and services, the target servers are configured to allow **IPv6 forwarding**.
47
-
* The **firewalls are not managed**, you'll need to implement your own rules the way you used to. in order to avoid any issue during deployment you should disable your firewall.
48
-
* If kubespray is run from non-root user account, correct privilege escalation method should be configured in the target servers. Then the `ansible_become` flag or command parameters `--become` or `-b` should be specified.
53
+
* The **firewalls are not managed**, you'll need to implement your own rules the way you used to.
54
+
in order to avoid any issue during deployment you should disable your firewall.
55
+
* If kubespray is run from non-root user account, correct privilege escalation method
56
+
should be configured in the target servers. Then the `ansible_become` flag or command
57
+
parameters `--become` or `-b` should be specified.
49
58
50
59
Kubespray provides the following utilities to help provision your environment:
51
60
@@ -56,7 +65,10 @@ Kubespray provides the following utilities to help provision your environment:
56
65
57
66
### (2/5) Compose an inventory file
58
67
59
-
After you provision your servers, create an [inventory file for Ansible](https://docs.ansible.com/ansible/latest/network/getting_started/first_inventory.html). You can do this manually or via a dynamic inventory script. For more information, see "[Building your own inventory](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#building-your-own-inventory)".
68
+
After you provision your servers, create an
69
+
[inventory file for Ansible](https://docs.ansible.com/ansible/latest/network/getting_started/first_inventory.html).
70
+
You can do this manually or via a dynamic inventory script. For more information,
71
+
see "[Building your own inventory](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#building-your-own-inventory)".
60
72
61
73
### (3/5) Plan your cluster deployment
62
74
@@ -74,49 +86,64 @@ Kubespray provides the ability to customize many aspects of the deployment:
74
86
* {{< glossary_tooltip term_id="cri-o" >}}
75
87
* Certificate generation methods
76
88
77
-
Kubespray customizations can be made to a [variable file](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html). If you are getting started with Kubespray, consider using the Kubespray defaults to deploy your cluster and explore Kubernetes.
If you are getting started with Kubespray, consider using the Kubespray
92
+
defaults to deploy your cluster and explore Kubernetes.
78
93
79
94
### (4/5) Deploy a Cluster
80
95
81
96
Next, deploy your cluster:
82
97
83
-
Cluster deployment using [ansible-playbook](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#starting-custom-deployment).
Large deployments (100+ nodes) may require [specific adjustments](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/large-deployments.md) for best results.
Kubespray provides a way to verify inter-pod connectivity and DNS resolve with [Netchecker](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/netcheck.md). Netchecker ensures the netchecker-agents pods can resolve DNS requests and ping each over within the default namespace. Those pods mimic similar behavior as the rest of the workloads and serve as cluster health indicators.
112
+
Kubespray provides a way to verify inter-pod connectivity and DNS resolve with
Netchecker ensures the netchecker-agents pods can resolve DNS requests and ping each
115
+
over within the default namespace. Those pods mimic similar behavior as the rest
116
+
of the workloads and serve as cluster health indicators.
95
117
96
118
## Cluster operations
97
119
98
120
Kubespray provides additional playbooks to manage your cluster: _scale_ and _upgrade_.
99
121
100
122
### Scale your cluster
101
123
102
-
You can add worker nodes from your cluster by running the scale playbook. For more information, see "[Adding nodes](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#adding-nodes)".
103
-
You can remove worker nodes from your cluster by running the remove-node playbook. For more information, see "[Remove nodes](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#remove-nodes)".
124
+
You can add worker nodes from your cluster by running the scale playbook. For more information,
125
+
see "[Adding nodes](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#adding-nodes)".
126
+
You can remove worker nodes from your cluster by running the remove-node playbook. For more information,
127
+
see "[Remove nodes](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/getting-started.md#remove-nodes)".
104
128
105
129
### Upgrade your cluster
106
130
107
-
You can upgrade your cluster by running the upgrade-cluster playbook. For more information, see "[Upgrades](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/upgrades.md)".
131
+
You can upgrade your cluster by running the upgrade-cluster playbook. For more information,
132
+
see "[Upgrades](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/upgrades.md)".
108
133
109
134
## Cleanup
110
135
111
-
You can reset your nodes and wipe out all components installed with Kubespray via the [reset playbook](https://github.com/kubernetes-sigs/kubespray/blob/master/reset.yml).
136
+
You can reset your nodes and wipe out all components installed with Kubespray
137
+
via the [reset playbook](https://github.com/kubernetes-sigs/kubespray/blob/master/reset.yml).
112
138
113
139
{{< caution >}}
114
140
When running the reset playbook, be sure not to accidentally target your production cluster!
115
141
{{< /caution >}}
116
142
117
143
## Feedback
118
144
119
-
* Slack Channel: [#kubespray](https://kubernetes.slack.com/messages/kubespray/) (You can get your invite [here](https://slack.k8s.io/)).
0 commit comments