Skip to content
This repository has been archived by the owner on Jan 19, 2021. It is now read-only.

[ADD]load choerodon images #32

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
3598c34
[FIX]k8s yum repo url
Aug 9, 2018
2745369
Merge pull request #4 from TimeBye/master
vinkdong Aug 9, 2018
7bbfb1f
improve CPU and memory in Vagrantfile
carllhw Aug 20, 2018
965b32c
Merge pull request #6 from carllhw/vagrant-cpus-memory
vinkdong Aug 20, 2018
4573d1e
[IMP] proxy set
Aug 31, 2018
137e8a9
Merge pull request #8 from TimeBye/master
vinkdong Aug 31, 2018
d59a20a
Fix typo kubelt to kubelet
Sep 8, 2018
4be250d
Merge pull request #10 from eliu/master
vinkdong Sep 9, 2018
ecbc5b3
support flannel v0.10.0
carllhw Sep 10, 2018
26ceafe
Merge pull request #11 from carllhw/flannel-v0.10.0
vinkdong Sep 11, 2018
bb3e97c
addon flannel add var flannel_iface
carllhw Sep 11, 2018
9cdaec4
Merge pull request #12 from carllhw/flannel-iface
vinkdong Sep 11, 2018
d8a4ff6
[FIX]Download portmap, kubernetes-cni does not include but flannel needs
Sep 13, 2018
765ed5d
Merge pull request #13 from TimeBye/master
vinkdong Sep 13, 2018
150af15
[FIX]Download portmap because kubernetes-cni does not include but fla…
Sep 25, 2018
f2ccc40
Merge pull request #15 from TimeBye/master
vinkdong Sep 25, 2018
135b6ac
Update Vagrantfile
Nov 5, 2018
8beea09
Merge pull request #16 from TimeBye/patch-1
vinkdong Nov 5, 2018
3c8bf50
[IMP]cleanup networks
Nov 19, 2018
22a0fc6
Merge pull request #17 from TimeBye/master
vinkdong Nov 19, 2018
a9797dd
[IMP]支持自定义存储路径
Nov 21, 2018
0602d7e
Merge pull request #19 from TimeBye/master
vinkdong Nov 21, 2018
4b1302b
[IMP]更新docker参数
Nov 21, 2018
ee0d1ef
Merge pull request #21 from TimeBye/master
vinkdong Nov 21, 2018
c64ed6d
fix scale when master not in 'kube-node' group
carllhw Nov 26, 2018
4a47afa
Merge pull request #22 from carllhw/fix-scale
vinkdong Nov 27, 2018
72f8be0
[IMP]Optimize reset cluster logic
Dec 14, 2018
f50e834
Merge pull request #24 from TimeBye/master
vinkdong Dec 14, 2018
5672bd8
[IMP]remove registry mirrors
Dec 19, 2018
e228890
[IMP]default install nfs-utils
Dec 19, 2018
3b53f55
Merge pull request #25 from TimeBye/master
vinkdong Dec 19, 2018
ba113fd
[IMP]updrade kubernets version
Dec 21, 2018
9b09aa1
[IMP]update readme
Dec 24, 2018
01573e6
Merge pull request #27 from TimeBye/v1.8.5
vinkdong Jan 7, 2019
3576572
[FIX]修复证书失效问题
Jan 24, 2019
eeaa7bf
Merge pull request #30 from TimeBye/master
vinkdong Jan 24, 2019
be0ffc9
[IMP]添加证书更新
Jan 25, 2019
bf24e51
Merge pull request #31 from TimeBye/master
vinkdong Jan 25, 2019
3a28fd5
[ADD]load choerodon images
hindungWang Jan 25, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# General
.vagrant/
.DS_Store

# Log files (if you are creating logs in debug mode, uncomment this)
# *.logs

*.retry
credentials/
cluster.retry
roles/debug
debug.yml
.DS_Store
.vagrant
debug.retry
63 changes: 3 additions & 60 deletions upgrade-to-1.9.9.yml → 1.8.5-upgrade-to-1.9.9.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 集群更新存在一定风险,请谨慎操作
# 使用命令:ansible-playbook -i inventory/hosts upgrade-to-1.9.9.yml
# 使用命令:ansible-playbook -i inventory/hosts 1.8.5-upgrade-to-1.9.9.yml

- hosts: all
vars_prompt:
Expand Down Expand Up @@ -36,44 +36,6 @@
--key /etc/ssl/etcd/ssl/client-key.pem \
snapshot save {{ etcd_back_path.stdout }}

# 升级etcd
- hosts:
- etcd
tasks:
- name: Upgrade etcdctl
shell: >-
docker run --rm --entrypoint cat registry.cn-hangzhou.aliyuncs.com/choerodon-tools/etcd:v3.3.6 \
/usr/local/bin/etcdctl > /usr/local/bin/etcdctl && \
chmod +x /usr/local/bin/etcdctl
register: etcd_task_result
until: etcd_task_result.rc == 0
retries: 3
delay: 300
changed_when: false
- name: Edit etcd configfile
shell: sed -i 's/v3.2.4/v3.3.6/g' /usr/local/bin/etcd
- name: reload systemd
shell: systemctl daemon-reload
- name: Ensure etcd service is started and enabled
service:
name: etcd
enabled: yes
state: restarted
- name: Check if cluster is healthy
shell: >-
/usr/local/bin/etcdctl \
--ca-file /etc/ssl/etcd/ssl/ca.pem \
--cert-file /etc/ssl/etcd/ssl/client.pem \
--key-file /etc/ssl/etcd/ssl/client-key.pem \
--peers https://127.0.0.1:2379 cluster-health | grep -q 'cluster is healthy'
register: etcd_cluster_is_healthy
ignore_errors: true
changed_when: false
check_mode: no
until: etcd_cluster_is_healthy.rc == 0
retries: 10
delay: 5

# 备份各节点配置文件
- hosts:
- kube-master
Expand Down Expand Up @@ -105,7 +67,8 @@
- name: Edit master Kubernetes configfile
shell: >-
sed -i 's/kubernetesVersion.*$/kubernetesVersion\:\ v1.9.9/g' /etc/kubernetes/kubeadm-config.yaml \
&& sed -i 's/GenericAdmissionWebhook/ValidatingAdmissionWebhook/g' /etc/kubernetes/kubeadm-config.yaml
&& sed -i 's/GenericAdmissionWebhook/ValidatingAdmissionWebhook/g' /etc/kubernetes/kubeadm-config.yaml \
&& sed -i 's/imageRepository.*$/imageRepository\:\ registry.cn-hangzhou.aliyuncs.com\/google_containers/g' /etc/kubernetes/kubeadm-config.yaml

# 更新yum包
- hosts:
Expand Down Expand Up @@ -139,31 +102,11 @@
- name: Upgrade Kubernetes
shell: 'kubeadm upgrade apply v1.9.9 --config=/etc/kubernetes/kubeadm-config.yaml -f'

# 更新docker配置
- hosts:
- kube-master
tasks:
- name: Upgrade docker configfile
ignore_errors: yes
shell: >-
jq '.["registry-mirrors"]|= .+["https://registry.docker-cn.com"]' /etc/docker/daemon.json > /tmp/docker-daemon.json && \
cp -f /tmp/docker-daemon.json /etc/docker/daemon.json
- name: remove old etcd_back
ignore_errors: yes
file:
path: /tmp/docker-daemon.json
state: absent

# 重启docker kubelet
- hosts: all
tasks:
- name: reload systemd
shell: systemctl daemon-reload
- name: restart docker
service:
name: docker
state: restarted
enabled: yes
- name: restart kubelet
service:
name: kubelet
Expand Down
117 changes: 117 additions & 0 deletions 1.9.9-upgrade-to-1.10.12.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# 集群更新存在一定风险,请谨慎操作
# 使用命令:ansible-playbook -i inventory/hosts 1.9.9-upgrade-to-1.10.12.yml

- hosts: all
vars_prompt:
name: "upgrade_confirmation"
prompt: "Are you sure you want to upgrade cluster state? Type 'yes' to upgrade your cluster."
default: "no"
private: no
pre_tasks:
- name: upgrade confirmation
fail:
msg: "upgrade confirmation failed"
when: upgrade_confirmation != "yes"

# 备份etcd数据
- hosts:
- etcd
tasks:
- name: Ensure etcd backup directory
become: yes
file:
path: "{{item}}"
state: directory
mode: 0700
with_items:
- /etc/kubernetes/etcd_back
- name: Generate etcd backup file name
shell: date "+/etc/kubernetes/etcd_back/etcd-%s.db"
register: etcd_back_path
- name: Snapshotting the etcd keyspace
shell: >-
ETCDCTL_API=3 /usr/local/bin/etcdctl \
--cacert /etc/ssl/etcd/ssl/ca.pem \
--cert /etc/ssl/etcd/ssl/client.pem \
--key /etc/ssl/etcd/ssl/client-key.pem \
snapshot save {{ etcd_back_path.stdout }}

# 备份各节点配置文件
- hosts:
- kube-master
- kube-node
tasks:
- name: Generate kubernetes backup configfile path
shell: date "+/etc/kubernetes_back/kubernetes-%s"
register: kubernetes_config_back_path
- name: Ensure backup directory
become: yes
file:
path: "{{item}}"
state: directory
mode: 0700
with_items:
- /etc/kubernetes_back
- "{{ kubernetes_config_back_path.stdout }}"
- name: Backup Kubernetes configfile
shell: cp -r /etc/kubernetes/* {{ kubernetes_config_back_path.stdout }}
- name: Remove old etcd_back
file:
path: /etc/kubernetes/etcd_back
state: absent

# 修改master节点配置文件
- hosts:
- kube-master
tasks:
- name: Edit master Kubernetes configfile
shell: >-
sed -i 's/kubernetesVersion.*$/kubernetesVersion\:\ v1.10.12/g' /etc/kubernetes/kubeadm-config.yaml \
&& sed -i 's/GenericAdmissionWebhook/ValidatingAdmissionWebhook/g' /etc/kubernetes/kubeadm-config.yaml \
&& sed -i 's/imageRepository.*$/imageRepository\:\ registry.cn-hangzhou.aliyuncs.com\/google_containers/g' /etc/kubernetes/kubeadm-config.yaml

# 更新yum包
- hosts:
- kube-master
- kube-node
tasks:
- name: Ensure yum repository
become: yes
yum_repository:
name: kubernetes
description: kubernetes Repository
baseurl: https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled: no
gpgcheck: no
state: present
- name: Ensure Kubernetes Yum repository
become: yes
yum:
enablerepo: kubernetes
name: "{{ item }}"
state: present
with_items:
- kubeadm-1.10.12-0.x86_64
- kubectl-1.10.12-0.x86_64
- kubelet-1.10.12-0.x86_64

# 正式升级
- hosts:
- kube-master
tasks:
- name: Upgrade Kubernetes
shell: 'kubeadm upgrade apply v1.10.12 --config=/etc/kubernetes/kubeadm-config.yaml -f'

# 重启docker kubelet
- hosts: all
tasks:
- name: reload systemd
shell: systemctl daemon-reload
- name: restart kubelet
service:
name: kubelet
state: restarted
enabled: yes
#Issues https://github.com/kubernetes/kubernetes/issues/21613
- name: Ensure KubeDNS is working
shell: echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
44 changes: 26 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,10 @@ Kubeadmin ansible is a toolkit for simple and quick installing k8s cluster.
Install the ansible run environment on the machine where the ansible script is to be executed:

```
sudo yum install -y epel-release

sudo yum install -y \
ansible \
git \
httpd-tools \
pyOpenSSL \
python-cryptography \
python-lxml \
python-netaddr \
python-passlib \
python-pip

```
View the version of ansible (version>=2.4.0.0)
```
ansible --version
sudo yum install epel-release -y
sudo yum install git python36 sshpass -y
sudo python3.6 -m ensurepip
sudo /usr/local/bin/pip3 install --no-cache-dir ansible==2.7.5 netaddr
```

Clone project:
Expand Down Expand Up @@ -447,4 +434,25 @@ Pull requests are welcome! Follow [this link](https://github.com/choerodon/choer
## 8. Upgrading the cluster

- **There are certain risks in cluster update. Please be cautious.**
- Use command:`ansible-playbook -i inventory/hosts upgrade-to-1.9.9.yml`
- Use command upgrade to 1.9.9 version:`ansible-playbook -i inventory/hosts 1.8.5-upgrade-to-1.9.9.yml`
- Use command upgrade to 1.10.12 version:`ansible-playbook -i inventory/hosts 1.9.9-upgrade-to-1.10.12.yml`

## 9. Refresh cluster certificate

> The prerequisite for refreshing the certificate is to ensure that the CA root certificate exists. After the certificate is refreshed, the master node kubelet is restarted to apply the new certificate. At this time, the cluster may not be operated for 1-2 minutes, but the business application is not affected.

```
ansible-playbook -i inventory/hosts -e @inventory/vars renew-certs.yml
```

## 10. Load Choerodon images

If you need to separately import the images of the Choerodon platform to speed up the installation,Please execute on the machine where ansible is installed:

```
wget -O ~/c7n.tar http://oss.saas.hand-china.com/c7n.tar

export ANSIBLE_HOST_KEY_CHECKING=False

ansible-playbook -i inventory/hosts load-choerodon-images.yml
```
44 changes: 28 additions & 16 deletions README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,10 @@
在要执行ansible脚本的机器上安装ansible运行需要的环境:

```
sudo yum install -y epel-release

sudo yum install -y \
ansible \
git \
httpd-tools \
pyOpenSSL \
python-cryptography \
python-lxml \
python-netaddr \
python-passlib \
python-pip

# 查看ansible版本(version>=2.4.0.0)
ansible --version
sudo yum install epel-release -y
sudo yum install git python36 sshpass -y
sudo python3.6 -m ensurepip
sudo /usr/local/bin/pip3 install --no-cache-dir ansible==2.7.5 netaddr -i https://mirrors.aliyun.com/pypi/simple/
```

克隆项目:
Expand Down Expand Up @@ -433,5 +422,28 @@ spec:

## 8. 升级集群

> 由于使用kubeadm限制,不能跨次版本号进行升级,故需升级至1.10.12版本Kubernetes请先升级集群至1.9.9版本。

- **集群更新存在一定风险,请谨慎操作**
- 使用命令:`ansible-playbook -i inventory/hosts upgrade-to-1.9.9.yml`
- 升级至1.9.9版本:`ansible-playbook -i inventory/hosts 1.8.5-upgrade-to-1.9.9.yml`
- 升级至1.10.12版本:`ansible-playbook -i inventory/hosts 1.9.9-upgrade-to-1.10.12.yml`

## 9. 刷新集群证书

> 刷新证书的前提需要保证CA根证书存在,证书刷新后会重启master节点 kubelet 以应用新的证书,届时可能导致1-2分钟无法操作集群,但业务应用是不受影响的。

```
ansible-playbook -i inventory/hosts -e @inventory/vars renew-certs.yml
```

## 10. 导入猪齿鱼平台镜像

如果需要单独导入猪齿鱼平台的镜像以加快安装速度,请在安装ansible的机器上执行:

```
wget -O ~/c7n.tar http://oss.saas.hand-china.com/c7n.tar

export ANSIBLE_HOST_KEY_CHECKING=False

ansible-playbook -i inventory/hosts load-choerodon-images.yml
```
5 changes: 3 additions & 2 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ Vagrant.configure(2) do |config|
n = 10 + i
s.vm.network "private_network", ip: "192.168.56.#{n}"
s.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 2
v.memory = 4096
end
end
end
Expand All @@ -20,4 +21,4 @@ if Vagrant.has_plugin?("vagrant-cachier")
config.cache.scope = :box
end

end
end
11 changes: 3 additions & 8 deletions inventory/hosts
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
[all]
node1 ansible_host=192.168.56.11 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true
node2 ansible_host=192.168.56.12 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true
node3 ansible_host=192.168.56.13 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true
node1 ansible_host=192.168.56.11 ip=192.168.56.11 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true
node2 ansible_host=192.168.56.12 ip=192.168.56.12 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true
node3 ansible_host=192.168.56.13 ip=192.168.56.13 ansible_user=root ansible_ssh_pass=vagrant ansible_become=true

[kube-master]
node1
node2
node3


[etcd]
node1
node2
node3


[kube-node]
node1
node2
node3



Loading