## 安装 Charm 2.x ```bash sudo snap install charm --channel=2.x --classic ``` ## 基础安装包 ```bash charm list-resources cs:~containers/etcd-583 wget https://api.jujucharms.com/charmstore/v5/~containers/etcd-583/resource/etcd/3 -O etcd.tar.gz charm list-resources cs:~containers/easyrsa-373 wget https://api.jujucharms.com/charmstore/v5/~containers/easyrsa-373/resource/easyrsa/5 -O easyrsa.tar.gz charm list-resources cs:~containers/kubernetes-master-990 wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-990/resource/cni-amd64/12 -O cni-amd64.tar.gz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-990/resource/cni-arm64/12 -O cni-arm64.tar.gz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-990/resource/cni-s390x/12 -O cni-s390x.tar.gz charm list-resources cs:~containers/kubernetes-worker-757 wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-757/resource/cni-amd64/983 -O cni-amd64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-757/resource/cni-arm64/974 -O cni-arm64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-757/resource/cni-s390x/986 -O cni-s390x.tgz charm list-resources cs:~containers/calico-838 wget https://api.jujucharms.com/charmstore/v5/~containers/calico-812/resource/calico/1027 -O calico.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-812/resource/calico-arm64/1026 -O calico-arm64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-812/resource/calico-node-image/709 -O calico-node-image.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-812/resource/calico-upgrade/854 -O calico-upgrade.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-812/resource/calico-upgrade-arm64/854 -O calico-upgrade-arm64.tgz ``` ## 向 controller 上传资源 ```bash juju attach-resource resource-name= juju attach-resource calico calico=/home/sa/charm/calico/calico-amd64.tar.gz juju attach-resource calico calico-upgrade=/home/sa/charm/calico/calico-upgrade-amd64.tar.gz ``` ## Snap Download ```bash #!/bin/bash set -eux SNAP_CHANNEL="1.21/stable" # Need juju 2.9 ALL_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl kubelet cdk-addons" MASTER_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl cdk-addons" WORKER_SNAPS="kube-proxy kubelet kubectl" # Download Juju 2.9 snap download --channel=2.9 juju # Download latest snaps from designated channel for snap in $ALL_SNAPS do snap download --channel=$SNAP_CHANNEL $snap done # Attach new snaps to master units for snap in $MASTER_SNAPS do juju attach kubernetes-master $snap=`ls ${snap}_*.snap` done # Attach new snaps to worker units for snap in $WORKER_SNAPS do juju attach kubernetes-worker $snap=`ls ${snap}_*.snap` done # Upgrade to new snaps on masters, one at a time for unit in `juju status --format json | jq -r '.applications|.["kubernetes-master"].units | keys[]'` do juju run-action $unit upgrade --wait done # Upgrade to new snaps on workers, one at a time for unit in `juju status --format json | jq -r '.applications|.["kubernetes-worker"].units | keys[]'` do juju run-action $unit upgrade --wait done ``` ## Final Release 需要手动做 Fix ```Bash https://raw.githubusercontent.com/charmed-kubernetes/bundle/main/releases/1.21/bundle.yaml charm pull cs:~containers/containerd-146 charm pull cs:~containers/easyrsa-395 charm pull cs:~containers/etcd-607 charm pull cs:~containers/kubernetes-master-1034 charm pull cs:~containers/kubernetes-worker-788 charm pull cs:~containers/calico-812 charm pull cs:~containers/kubeapi-load-balancer-814 ```